Π²ΡΠ²ΠΎΠ΄ΠΈΡ (Π½Π° stdout) Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΡΠΌ. ΠΡΠΈΠΌΠ΅Ρ 4-1).
echo Hello
echo $a
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², echo ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ»ΡΡΠ° -e. Π‘ΠΌ. ΠΡΠΈΠΌΠ΅Ρ 5-2.
ΠΠ±ΡΡΠ½ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π² echo Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ. ΠΠΎΠ΄Π°Π²ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΡΡΠΎΠΌ -n.
ΠΠΎΠΌΠ°Π½Π΄Π° echo ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ.
if echo "$VAR" | grep -q txt # if [[ $VAR = *txt* ]]
then
echo "$VAR ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ \"txt\""
fi
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° echo, Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π²ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
a=`echo "HELLO" | tr A-Z a-z`
Π‘ΠΌ. ΡΠ°ΠΊ ΠΆΠ΅ ΠΡΠΈΠΌΠ΅Ρ 12-15, ΠΡΠΈΠΌΠ΅Ρ 12-2, ΠΡΠΈΠΌΠ΅Ρ 12-32 ΠΈ ΠΡΠΈΠΌΠ΅Ρ 12-33.
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° echo `command` ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ command.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $IFS ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ \n, ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. Bash ΡΠ°Π·ΠΎΠ±ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ command, ΠΏΠΎ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ, Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ echo, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
bash$ ls -l /usr/share/apps/kjezz/sounds
-rw-r--r-- 1 root root 1407 Nov 7 2000 reflect.au
-rw-r--r-- 1 root root 362 Nov 7 2000 seconds.au
bash$ echo `ls -l /usr/share/apps/kjezz/sounds`
total 40 -rw-r--r-- 1 root root 716 Nov 7 2000 reflect.au -rw-r--r-- 1 root root 362 Nov 7 2000 seconds.au
ΠΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Bash ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ /bin/echo.
bash$ type -a echo
echo is a shell builtin
echo is /bin/echo
printf
printf -- ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π°, ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ printf() Π² ΡΠ·ΡΠΊΠ΅ C, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΄ΠΈΡΠ°Π΅ΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°.
printf format-string... parameter...
ΠΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Bash. ΠΠΌΠ΅Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ /bin/printf ΠΈΠ»ΠΈ /usr/bin/printf. ΠΠ° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° man 1 printf ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ.
Π‘ΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Bash ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ printf.
ΠΡΠΈΠΌΠ΅Ρ 11-1. printf Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ
#!/bin/bash
# printf demo
# ΠΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°:
# Π‘ΡΠΈΡΠ°Ρ ΡΠ²ΠΎΠΈΠΌ Π΄ΠΎΠ»Π³ΠΎΠΌ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈ ΡΠ΅Π»ΠΎΠΉ
# ΡΠ°ΡΡΠ΅ΠΉ Π² Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΠ»Π°Ρ , ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» "Π·Π°ΠΏΡΡΠ°Ρ"
# (Π² ΡΡΡΡΠΊΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΡ ), ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
# ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ (Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ) ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠΈΡΠ»Π° PI.
# Π’ΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΈΡΠ»Π° PI Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ ΡΠΎΡΠΊΡ
# Π½Π° Π·Π°ΠΏΡΡΡΡ -- ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ. ;-)
PI=3,14159265358979
DecimalConstant=31373
Message1="ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ,"
Message2="ΠΠ΅ΠΌΠ»ΡΠ½ΠΈΠ½."
echo
printf "Π§ΠΈΡΠ»ΠΎ ΠΏΠΈ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ 2 Π·Π½Π°ΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ = %1.2f" $PI
echo
printf "Π§ΠΈΡΠ»ΠΎ ΠΏΠΈ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ 9 Π·Π½Π°ΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ = %1.9f" $PI # ΠΠ°ΠΆΠ΅ ΠΎΠΊΡΡΠ³Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
printf "\n" # ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ,
printf "ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° = \t%d\n" $DecimalConstant # ΠΡΡΠ°Π²Π»Π΅Π½ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ (\t)
printf "%s %s \n" $Message1 $Message2
echo
# ==========================================#
# ΠΠΌΡΠ»ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ 'sprintf' Π² ΡΠ·ΡΠΊΠ΅ C.
# ΠΠ°ΠΏΠΈΡΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
echo
Pi12=$(printf "%1.12f" $PI)
echo "Π§ΠΈΡΠ»ΠΎ ΠΏΠΈ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ 12 Π·Π½Π°ΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ = $Pi12"
Msg=`printf "%s %s \n" $Message1 $Message2`
echo $Msg; echo $Msg
exit 0
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ printf -- ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
E_BADDIR=65
var=nonexistent_directory
error()
{
printf " [email protected]" >&2
# Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° stderr.
echo
exit $E_BADDIR
}
cd $var || error $"ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ %s." "$var"
# Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ S.C.
read
"Π§ΠΈΡΠ°Π΅Ρ" Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° -- stdin, Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠ»ΡΡ -a ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Ρ (ΡΠΌ. ΠΡΠΈΠΌΠ΅Ρ 25-3).
ΠΡΠΈΠΌΠ΅Ρ 11-2. ΠΠ²ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ read
#!/bin/bash
echo -n "Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ 'var1': "
# ΠΠ»ΡΡ -n ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ.
read var1
# ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ -- ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» '$'.
echo "var1 = $var1"
echo
# ΠΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ 'read' ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
echo -n "Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ 'var2' ΠΈ 'var3' (ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π» ΠΈΠ»ΠΈ ΡΠ°Π±ΡΠ»ΡΡΠΈΡ): "
read var2 var3
echo "var2 = $var2 var3 = $var3"
# ΠΡΠ»ΠΈ Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎ Π²ΡΠΎΡΠ°Ρ ΠΎΡΡΠ°Π½Π΅ΡΡΡ "ΠΏΡΡΡΠΎΠΉ".
exit 0
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ read Π½Π΅ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎ Π²Π²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $REPLY.
ΠΡΠΈΠΌΠ΅Ρ 11-3. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ read Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°
#!/bin/bash
echo
# -------------------------- #
# ΠΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°.
echo -n "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: "
read var
echo "\"var\" = "$var""
# ΠΠ΄Π΅ΡΡ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ.
# -------------------------- #
echo
echo -n "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: "
read # ΠΠΎΠΌΠ°Π½Π΄Π° 'read' ΡΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΡΡΡ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°,
#+ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅...
#+ ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²Π²ΠΎΠ΄ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $REPLY.
var="$REPLY"
echo "\"var\" = "$var""
# ΠΡΠ° ΡΠ°ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅.
echo
exit 0
ΠΠ±ΡΡΠ½ΠΎ, ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ Π² ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "read", ΡΠΈΠΌΠ²ΠΎΠ» \ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ. ΠΠ»ΡΡ -r Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» \ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
ΠΡΠΈΠΌΠ΅Ρ 11-4. ΠΠ²ΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ read
#!/bin/bash
echo
echo "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ \\, ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ENTER."
echo "ΠΠ°ΡΠ΅ΠΌ Π²Π²Π΅Π΄ΠΈΡΠ΅ Π²ΡΠΎΡΡΡ ΡΡΡΠΎΠΊΡ, ΠΈ ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠΌΠΈΡΠ΅ ENTER."
read var1 # ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ, ΡΠΈΠΌΠ²ΠΎΠ» "\" ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ.
# ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° \
# Π²ΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
echo "var1 = $var1"
# var1 = ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π²ΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
# ΠΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅ΠΉΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ "\",
# Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π²Π²ΠΎΠ΄ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
echo; echo
echo "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π΄ΡΡΠ³ΡΡ ΡΡΡΠΎΠΊΡ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ \\, ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ENTER."
read -r var2 # ΠΠ»ΡΡ -r Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "read" Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ "\"
# ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
# ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° \
echo "var2 = $var2"
# var2 = ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° \
# ΠΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡ ENTER.
echo
exit 0
ΠΠΎΠΌΠ°Π½Π΄Π° read ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΎΡΠ΅Π½Ρ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ - ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎ Π²Π²ΠΎΠ΄Ρ (prompt), ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡ ENTER.
# Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡ ENTER.
read -s -n1 -p "ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ " keypress
echo; echo "ΠΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° "\"$keypress\""."
# -s -- ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ ΡΡ ΠΎ-Π²ΡΠ²ΠΎΠ΄, Ρ.Π΅. Π²Π²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅.
# -n N -- Π²Π²ΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° N-Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°.
# -p -- Π·Π°Π΄Π°Π΅Ρ Π²ΠΈΠ΄ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ - ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρ (prompt).
# ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ»ΡΡ -n, ΠΊΡΠΎΠΌΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ read ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ½ΡΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ 11-5. ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ
#!/bin/bash