if [ -Ρ /etc/inetd ]
then
/etc/inetd
echo "Π·Π°ΠΏΡΡΠ΅Π½ ΡΠ΅ΡΠ²Π΅Ρ inetd"
fi
Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠΊΡΠΈΠΏΡΠ°, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ANSW. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅Π» 'N' ΠΈΠ»ΠΈ 'n', ΡΠΊΡΠΈΠΏΡ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ.
if [ "$ANSW" = "N" -ΠΎ "$ANSW" = "n" ]
then
exit
fi
Π¦ΠΈΠΊΠ»Ρ
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Bourne shell ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠΈΠΊΠ»Π°. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
1) while ΡΡΠ»ΠΎΠ²ΠΈΠ΅
do
command1
command2
...
done
2) until ΡΡΠ»ΠΎΠ²ΠΈΠ΅
do
command1
command2
...
done
3) for var in ΡΠΏΠΈΡΠΎΠΊ
do
command1
command2
...
done
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° while ΠΊΠΎΠΌΠ°Π½Π΄Ρ command1, command2 ΠΈ Ρ.Π΄. Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΠΏΠΎΠΊΠ° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ ΡΡΠ°Π½Π΅Ρ Π»ΠΎΠΆΠ½ΡΠΌ. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ if, ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, test.
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° until ΠΊΠΎΠΌΠ°Π½Π΄Ρ command1, command2 ΠΈ Ρ.Π΄. Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΠΏΠΎΠΊΠ° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΡΠΌ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ for ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ var ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°Π²Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΠΌ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°. Π‘ΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊ Π²ΡΠ²ΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (`ΠΈΠΌΡ_ΠΊΠΎΠΌΠ°Π½Π΄Ρ_ΡΠΎΡΠΌΠΈΡΡΡΡΠ΅ΠΉ_ΡΠΏΠΈΡΠΎΠΊ`) ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² shell.
Π Π΄ΡΡΠ³ΠΎΠΉ ΡΠΎΡΠΌΠ΅ for, ΠΊΠΎΠ³Π΄Π° ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ var ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΡΠΊΡΠΈΠΏΡΡ.
Π§ΡΠΎΠ±Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ /etc/mounall Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ Solaris 2.5 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π΄Π°Π½Π½ΡΡ , ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /etc/vfsck. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ while.
#
cat /etc/vfsck |
while read special fsckdev mountp fstype fsckpass automnt mntopts
# ΠΠΎΡΡΡΠΎΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΉΠ»Π° vfsck ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ spe-
# cial, fsckdev ΠΈ Ρ.Π΄. Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
do
case $special in
'# ' * | '' ) # ΠΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
continue ;;
'-') # ΠΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
continue ;;
esac
# ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ
# /usv/sbin/fsck
/usr/sbin/fsck -m -F $fstype $fsckdev >/dev/null 2>&1
...
done
Π‘ΠΊΡΠΈΠΏΡ ΠΎΡΠΈΡΡΠΊΠΈ Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ for.
for dir in /tmp /usr/tmp /home/tmp
do
find $dir ! -type d -atime +7 -exec rm {} \;
done
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΄Π°Π»ΡΡΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ (/tmp, /usr/tmp ΠΈ /home/tmp), ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄.
Π‘Π΅Π»Π΅ΠΊΡΠΎΡΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ case ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠΎΡΠΌΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ°:
case ΡΠ»ΠΎΠ²ΠΎ in
ΡΠ°Π±Π»ΠΎΠ½1)
command
...
;;
ΡΠ°Π±Π»ΠΎΠ½2)
command
...
;;
*)
command
...
;;
esac
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π΄Π²ΡΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ';'. Π¨Π°Π±Π»ΠΎΠ½Ρ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΌΠ°ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π°ΠΌΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ "ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ". Π Π°Π·Π΄Π΅Π» Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ '*' Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΠ°Π·Π΄Π΅Π»Ρ default Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° switch ΡΠ·ΡΠΊΠ° Π‘: Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΡΠΎ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·Π΄Π΅Π»Π° '*)'. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ°ΡΠΈ Π² SCO UNIX.
state=$1
set `who -r`
case $state in
'start')
if [ $9 = "2" -o $9 = "3" ]
then
exit
fi
[ -f /usr/lib/lpshed ] && /usr/lib/lpshed
;;
'stop')
[ -f /usr/lib/lpshut ] && /usr/lib/lpshut
;;
*)
echo "usage $0 start|stop"
;;
esac
Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠΊΡΠΈΠΏΡ Π²ΡΠ·Π²Π°Π½ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ start, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π·Π°ΠΏΡΡΠΊ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ°ΡΠΈ. ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΡΠΈΠΏΡΠ° β stop, ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ°ΡΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°. ΠΠ°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° Ρ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠ²ΠΎΠ΄
ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΠ²Π½ΠΎ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠΌΠ°Π½Π΄Π° read ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠ°, Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ ΡΡΠΈΡΠ°Π½Π½Π°Ρ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΎΠΌΠ°Π½Π΄Π° read ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠ² ΡΡΡΠΎΠΊΠΈ. ΠΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΡΠ»ΠΎΠ²Π°. ΠΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎ Π½Π° ΠΏΡΠΎΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
Π’Π΅ΠΊΡΡ ΡΠΊΡΠΈΠΏΡΠ° test5.sh:
#!/bin/sh
echo "input: "
while read var1 var2 var3
do
echo var1=$var1
echo var2=$var2
echo var3=$var3
echo "input: "
done
ΠΠ°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ°
$ test5.sh
input: ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ read
var1=ΠΏΡΠΈΠΌΠ΅Ρ
var2=ΡΠ°Π±ΠΎΡΡ
var3=ΠΊΠΎΠΌΠ°Π½Π΄Ρ read
input: Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ
var1=Π΅ΡΠ΅
var2=ΠΏΡΠΈΠΌΠ΅Ρ
var3=
input: ^D
$
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ read Π² ΡΠΈΠΊΠ»Π΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄. Π¦ΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° (ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ Π²Π²ΠΎΠ΄Ρ <Ctrl>+<D>), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΡΠΎΠΌ read Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΡΠ΄Π°ΡΡ (ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ°Π²Π΅Π½ 1) ΠΈ while Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΡΠΈΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠ»ΠΎΠ² ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ var3 ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ»ΠΎΠ². ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠΈΠΊΠ»Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var3 ΠΏΡΡΡΠΎ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ
ΠΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ. ΠΠ»Ρ Bourne shell (/bin/sh), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΡΠ½ΡΠΉ Π΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ /bin/jsh. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° (ΠΏΡΠΎΡΡΠ°Ρ ΠΈΠ»ΠΈ ΡΠΎΡΡΠ°Π²Π½Π°Ρ), ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ. ΠΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΠΈΠ±ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π»ΠΈΠ±ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π»ΠΈΠ±ΠΎ Π±ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ΄ΠΎΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ:
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΠ°Π΄Π°Π½ΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ Π²Π²ΠΎΠ΄ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡΠΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° Π·Π°Π΄Π°Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ :
%jobid
Π³Π΄Π΅ jobid ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
% ΠΈΠ»ΠΈ + Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ β ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ Π²Π½ΠΎΠ²Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ - ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ (ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ) ?ΡΡΡΠΎΠΊΠ° ΠΠ°Π΄Π°Π½ΠΈΠ΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΡΠΎΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΡΡΠΊΠ° n ΠΠ°Π΄Π°Π½ΠΈΠ΅ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ n pref ΠΠ°Π΄Π°Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ pref, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ls(1), Π·Π°ΠΏΡΡΠ΅Π½Π½Π°Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π°Π΄ΡΠ΅ΡΡΠ΅ΡΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ %lsΠ‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: