$ read salutation
Wie geht's?
$ echo $salutation
Wie geht's?
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°Π²ΡΡΠΊΠΈΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΡΠ½ΠΈΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Π²ΡΡΠ΅ΠΊ.
ΠΠ±ΡΡΠ½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ Π½Π΅ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ, Π·Π½Π°ΠΊΠΎΠΌ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ). ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ.
ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ $foo, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΠΈΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ. ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ $-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ Π² ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΈΠ»ΠΈ Π°ΠΏΠΎΡΡΡΠΎΡΡ, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° $, Π²ΡΡΠ°Π²ΠΈΠ² ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ» \ (ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»ΡΡ).
ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.1.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.1. ΠΠ³ΡΠ° Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈΠ ΡΡΠΎΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ°Π²ΡΡΠΊΠΈ Π²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠ²ΠΎΠ΄ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
#!/bin/sh
myvar="Hi there"
echo $myvar
echo "$myvar"
echo '$myvar'
echo \$myvar
echo Enter some text
read myvar
echo '$myvar' now equals $myvar
exit 0
ΠΠ°Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
$ ./variable
Hi there
Hi there
$myvar
$myvar
Enter some text
Hello World
$myvar now equals Hello World
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ myvar, ΠΈ Π΅ΠΉ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° Hi there. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠ΅ΠΉ, ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ» $ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°ΡΠΊΡΡΡΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»ΡΡ Π²Π»ΠΈΡΡΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ read Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΠΎΠ³Π΄Π° ΡΡΠ°ΡΡΡΠ΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡ ΠΈΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΡΡΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΡΡΠΎΡΠ½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ. Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ², Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π». 2.2.
Π’Π°Π±Π»ΠΈΡΠ° 2.2
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ $ΠΠΠΠ ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ $PATH Π Π°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡΠΌΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ $PS1 ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π§Π°ΡΡΠΎ Π·Π½Π°ΠΊ $, Π½ΠΎ Π² ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ bash ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΎΠΊΠ° [\ [email protected]\h \w]$ β ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠΉ Π² ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΠΊ $ $PS2 ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°; ΠΎΠ±ΡΡΠ½ΠΎ Π·Π½Π°ΠΊ > $IFS Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π°. Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ Π²Π²ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΎΠ±Π΅Π», Π·Π½Π°ΠΊ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ $0 ΠΠΌΡ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ $# ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² $$ ID (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π²Π½ΡΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, /tmp/tmpfile_$$ ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ env <ΠΊΠΎΠΌΠ°Π½Π΄Π°>, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² ΡΠ°Π·Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ , ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ env. ΠΠ°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ (subshells), ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ export.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠΡΠ»ΠΈ Π²Π°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ $# Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π½ΠΎ ΡΠ°Π²Π½Π° 0.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π±Π». 2.3.
Π’Π°Π±Π»ΠΈΡΠ° 2.3
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ $1, $2, ... ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ $* Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ IFS. ΠΡΠ»ΠΈ IFS ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ, ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $* ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ [email protected] ΠΠ΄Π²Π° ΡΠ°Π·Π»ΠΈΡΠΈΠΌΠ°Ρ Π²Π°ΡΠΈΠ°ΡΠΈΡ $*; Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ IFS, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΡΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ IFS ΠΏΡΡΡΠ°ΠΠ΅Π³ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ $* ΠΈ [email protected], ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π² ΠΈΡ .
$ IFS=''
$ set foo bar bam
$ echo " [email protected]"
foo bar bam
$ echo "$*"
foobarbam
$ unset IFS
$ echo "$*"
foo bar bam
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ [email protected] ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ IFS. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ, Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
ΠΠΎΠΌΠΈΠΌΠΎ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ read (ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.2).
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.2. ΠΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π΄Π°Π»Π΅Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ. ΠΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΅Π³ΠΎ Π² ΡΠ°ΠΉΠ» try_var Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π΅Π³ΠΎ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod +Ρ try_var.
#!/bin/sh
salutation="Hello"
echo $salutation
echo "The program $0 is now running"
echo "The second parameter was $2"
echo "The first parameter was $1"
echo "The parameter list was
echo "The user's home directory is $HOME"
echo "Please enter a new greeting"
read salutation
echo $salutation
echo "The script is now complete"
exit 0
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
$ ./try_var foo bar baz
Hello
The program ./try_var is now running
The second parameter was bar
The first parameter was foo
The parameter list was foo bar baz
The user's home directory is /home/rick
Please enter a new greeting
Sire
Sire
The script is now complete $
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ salutation, Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠΆΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ $ΠΠΠΠ.
ΠΠ°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π£ΡΠ»ΠΎΠ²ΠΈΡ
ΠΡΠ½ΠΎΠ²Π° Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²Π°ΠΌΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²Π°ΠΌΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ exit Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠΎΠΌΠ°Π½Π΄Π° test ΠΈΠ»ΠΈ [ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° [ ΠΈΠ»ΠΈ test β Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ [ ΠΈ test β ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ [ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ°Ρ ΡΠ°ΡΡΡ ]. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ [ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, Π½ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΎΠ½Π° ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.