Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования Π½Π° языкС сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 47

Автор МСндСль ΠšΡƒΠΏΠ΅Ρ€

# --------------------------------------------

# ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ!

# Π­Ρ‚ΠΎΡ‚ сцСнарий запустила какая-Ρ‚ΠΎ "рСдиска",

#+ ΠΈ заставила ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ этот тСкст ΠΊ Π’Π°ΠΌ.

# ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚

#+ ΠΊΡƒΠ΄Π° Π΄Π΅Π²Π°Ρ‚ΡŒ своС врСмя.

# --------------------------------------------


echo "`date`, сцСнарий \"`basename $0`\" ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ "$adr"."


exit 0

mailto

Команда mailto, ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° mail, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ отправляСт сообщСния ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅. Однако, ΠΊΡ€ΠΎΠΌΠ΅ этого, mailto позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ MIME (multimedia) сообщСния.

vacation

Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для автоматичСской ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° элСктронныС письма, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ отправитСля ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ отсутствуСт. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ совмСстно с sendmail ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΌΡƒΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ (ΠΏΠΎ ΠΌΠΎΠ΄Π΅ΠΌΡƒ).


12.7. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ консоли ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ

tput

инициализация Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² terminfo. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ tput ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. tput clear -- эквивалСнтно ΠΊΠΎΠΌΠ°Π½Π΄Π΅ clear. tput reset -- эквивалСнтно ΠΊΠΎΠΌΠ°Π½Π΄Π΅ reset. tput sgr0 -- Ρ‚Π°ΠΊ ΠΆΠ΅ сбрасывСт настройки Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Π½ΠΎ Π±Π΅Π· очистки экрана.

bash$ tput longname

xterm terminal emulator (XFree86 4.0 Window System)


Команда tput cup X Y ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ курсор Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ (X,Y). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ clear, ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‰Π°Ρ экран.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: stty ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ возмоТностСй.

infocmp

CΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ характСристиках Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ², хранящСйся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… terminfo.

bash$ infocmp

# Reconstructed via infocmp from file:

/usr/share/terminfo/r/rxvt

rxvt|rxvt terminal emulator (X Window System),

am, bce, eo, km, mir, msgr, xenl, xon,

colors#8, cols#80, it#8, lines#24, pairs#64,

acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,

bel=^G, blink=\E[5m, bold=\E[1m,

civis=\E[?25l,

clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,

...


reset

БбрасываСт настройки Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ экран. Как ΠΈ Π² случаС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ clear, курсор ΠΈ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π²ΠΎΠ΄Ρƒ (prompt) выводятся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

clear

Команда clear просто ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ экран Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ xterm. ΠšΡƒΡ€ΡΠΎΡ€ ΠΈ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π²ΠΎΠ΄Ρƒ (prompt) выводятся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· сцСнария. Π‘ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 10-25.

script

Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ всС символы, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ c ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΎΠΆΠ΅). ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ, фактичСски, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉΡˆΠΈΠΉ синхронный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сСссии.


12.8. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ выполнСния матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

factor

Π Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π½Π° простыС ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ.

bash$ factor 27417

27417: 3 13 19 37


bc

Bash Π½Π΅ Π² состоянии Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия Π½Π°Π΄ числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈ Π½Π΅ содСрТит ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ сущСствуСт bc.

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ вычислСния с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° bc ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ возмоТностями, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ для языков программирования.

Бинтаксис bc Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ язык C.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° UNIX, Ρ‚ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ достаточно ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² сцСнариях Π½Π° языкС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

НиТС приводится простой шаблон Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ bc Π² сцСнарии. Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ΅ΠΌ подстановки ΠΊΠΎΠΌΠ°Π½Π΄.

variable=$(echo "OPTIONS; OPERATIONS" | bc)


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-32. ЕТСмСсячныС Π²Ρ‹ΠΏΠ»Π°Ρ‚Ρ‹ ΠΏΠΎ Π·Π°ΠΉΠΌΡƒ

#!/bin/bash

# monthlypmt.sh: РасчСт СТСмСсячных Π²Ρ‹ΠΏΠ»Π°Ρ‚ ΠΏΠΎ Π·Π°ΠΉΠΌΡƒ.


# Π­Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° "mcalc" (mortgage calculator),

#+ написанного Jeff Schmidt ΠΈ Mendel Cooper (ваш ΠΏΠΎΠΊΠΎΡ€Π½Ρ‹ΠΉ слуга).

# http://www.ibiblio.org/pub/Linux/apps/financial/mcalc-1.6.tar.gz [15k]


echo

echo "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ сумму Π·Π°ΠΉΠΌΠ°, ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΡƒΡŽ ставку ΠΈ срок Π·Π°ΠΉΠΌΠ°,"

echo "для расчСта суммы СТСмСсячных Π²Ρ‹ΠΏΠ»Π°Ρ‚."


bottom=1.0


echo

echo -n "Π‘ΡƒΠΌΠΌΠ° Π·Π°ΠΉΠΌΠ° (Π±Π΅Π· запятых -- с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ Π΄ΠΎΠ»Π»Π°Ρ€Π°) "

read principal

echo -n "ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚Π½Π°Ρ ставка (ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚) " # Если 12%, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ "12", Π° Π½Π΅ ".12".

read interest_r

echo -n "Π‘Ρ€ΠΎΠΊ Π·Π°ΠΉΠΌΠ° (мСсяцСв) "

read term


interest_r=$(echo "scale=9; $interest_r/100.0" | bc) # Π—Π΄Π΅ΡΡŒ "scale" -- Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний.


interest_rate=$(echo "scale=9; $interest_r/12 + 1.0" | bc)


top=$(echo "scale=9; $principal*$interest_rate^$term" | bc)


echo; echo "ΠŸΡ€ΠΎΡˆΡƒ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ. ВычислСния ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ."


let "months = $term - 1"

# ====================================================================

for ((x=$months; x > 0; x--))

do

bot=$(echo "scale=9; $interest_rate^$x" | bc)

bottom=$(echo "scale=9; $bottom+$bot" | bc)

# bottom = $(($bottom + $bot"))

done

# --------------------------------------------------------------------

# Rick Boivie ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ

#+ Ρ†ΠΈΠΊΠ»Π° вычислСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° 2/3.


# for ((x=1; x <= $months; x++))

# do

# bottom=$(echo "scale=9; $bottom * $interest_rate + 1" | bc)

# done


# А Π·Π°Ρ‚Π΅ΠΌ нашСл Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ,

#+ которая выполняСтся Π² 20 Ρ€Π°Π· быстрСС !!!


# bottom=`{

# echo "scale=9; bottom=$bottom; interest_rate=$interest_rate"

# for ((x=1; x <= $months; x++))

# do

# echo 'bottom = bottom * interest_rate + 1'

# done

# echo 'bottom'

# } | bc` # Π’Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» 'for' Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ подстановки ΠΊΠΎΠΌΠ°Π½Π΄.


# ====================================================================


# let "payment = $top/$bottom"

payment=$(echo "scale=2; $top/$bottom" | bc)

# Π”Π²Π° Π·Π½Π°ΠΊΠ° послС запятой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠ»Π»Π°Ρ€Ρ‹ ΠΈ Ρ†Π΅Π½Ρ‚Ρ‹.


echo

echo "СТСмСсячныС Π²Ρ‹ΠΏΠ»Π°Ρ‚Ρ‹ = \$$payment" # ВывСсти Π·Π½Π°ΠΊ "Π΄ΠΎΠ»Π»Π°Ρ€Π°" ΠΏΠ΅Ρ€Π΅Π΄ числом.

echo


exit 0


# УпраТнСния:

# 1) Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° суммы с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ Ρ†Π΅Π½Ρ‚Π°.

# 2) Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠΉ ставки ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ Π² Π²ΠΈΠ΄Π΅ дСсятичного числа -- Π΄ΠΎΠ»ΠΈ Ρ†Π΅Π»ΠΎΠ³ΠΎ.

# 3) Если Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅ΡΡ‚ΠΎΠ»ΡŽΠ±ΠΈΠ²Ρ‹,

# Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² сцСнарий Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ помСсячных Π²Ρ‹ΠΏΠ»Π°Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-33. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ чисСл ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ систСмы счислСния Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ

:

##########################################################################

# Shellscript: base.sh - Π²Ρ‹Π²ΠΎΠ΄ чисСл Π² Ρ€Π°Π·Π½Ρ‹Ρ… систСмах счислСния (Bourne Shell)

# Author : Heiner Steven ( [email protected])

# Date : 07-03-95

# Category : Desktop

# $Id: base.sh,v 1.2 2000/02/06 19:55:35 heiner Exp $

##########################################################################

# Description

#

# Changes

# 21-03-95 stv исправлСна ошибка, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ числа 0xb (0.2)

##########################################################################


# ==> Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Π²Ρ‚ΠΎΡ€Π°.

# ==> ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.


NOARGS=65

PN=`basename "$0"` # Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

VER=`echo '$Revision: 1.2 $' | cut -d' ' -f2` # ==> VER=1.2


Usage () {

echo "$PN - Π²Ρ‹Π²ΠΎΠ΄ чисСл Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСмах счислСния, $VER (stv '95)

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ использования: $PN [number ...]


Если число Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ, Ρ‚ΠΎ производится Π²Π²ΠΎΠ΄ со stdin.

Число ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ:

Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов 0b (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 0b1100)

Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с 0 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 014)

ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов 0x (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 0xc)

дСсятичноС Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ случаС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 12)" >&2

exit $NOARGS

} # ==> Ѐункция Π²Ρ‹Π²ΠΎΠ΄Π° сообщСния ΠΎ порядкС использования.


Msg () {

for i # ==> [список] ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠΏΡƒΡ‰Π΅Π½.

do echo "$PN: $i" >&2

done

}


Fatal () { Msg " [email protected]"; exit 66; }


PrintBases () {

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ систСмы счислСния