${!ΠΏΡΠ΅ΡΠΈΠΊΡ*}
${!ΠΏΡΠ΅ΡΠΈΠΊΡ@}
ΠΡΠΈ Π΄Π²Π΅ ΡΠΎΡΠΌΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ bash, ΠΎΠ±Π΅ ΡΠΎΡΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌΠΈΡΡ Ρ BASH:
[[email protected] ~]$ echo ${!BASH*}
BASH BASH_ARGC BASH_ARGV BASH_COMMAND BASH_COMPLETION BASH_COMPLETION_DIR BASH_LINENO BASH_SOURCE BASH_SUBSHELL BASH_VERSINFO BASH_VERSION
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΏΡΡΡΠΌΠΈ. Π€ΠΎΡΠΌΠ°
${#ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ}
Π²Π΅ΡΠ½Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅. ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΠ»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΠ³ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΠ°, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ @ ΠΈΠ»ΠΈ *, ΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Π΅ΡΠ½Π΅Ρ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
[[email protected] ~]$ foo="This string is long."
[[email protected] ~]$ echo "'$foo' is ${#foo} characters long."
'This string is long.' is 20 characters long.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ:
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ:ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅}
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ:ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅:Π΄Π»ΠΈΠ½Π°}
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅. ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° Π΄Π»ΠΈΠ½Π°.
[[email protected] ~]$ foo="This string is long."
[[email protected] ~]$ echo ${foo:5}
string is long.
[[email protected] ~]$ echo ${foo:5:6}
string
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΅Π³ΠΎ ΠΎΡΡΡΠ΅Ρ Π½Π°ΡΠ½Π΅ΡΡΡ Ρ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ°Π»Π°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π΅Π», ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠΎΡΠΌΠΎΠΉ ${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ:-ΡΠ»ΠΎΠ²ΠΎ}. ΠΠ»ΠΈΠ½Π°, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π°, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ 0. ΠΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ @, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π΄Π»ΠΈΠ½Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
[[email protected] ~]$ foo="This string is long."
[[email protected] ~]$ echo ${foo: -5}
long.
[[email protected] ~]$ echo ${foo: -5:2}
lo
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π΅ ΡΠΎΡΠΌΡ:
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ#ΡΠ°Π±Π»ΠΎΠ½}
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ##ΡΠ°Π±Π»ΠΎΠ½}
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ΄Π°Π»ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ. Π ΡΠ°Π±Π»ΠΎΠ½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΡΡΠ΅ΠΉ. ΠΡΠΈ Π΄Π²Π΅ ΡΠΎΡΠΌΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΎΡΠΌΠ° # ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΠΎΡΠΌΠ° ## ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅.
[[email protected] ~]$ foo=file.txt.zip
[[email protected] ~]$ echo ${foo#*.}
txt.zip
[[email protected] ~]$ echo ${foo##*.}
zip
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π΅ ΡΠΎΡΠΌΡ:
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ%ΡΠ°Π±Π»ΠΎΠ½}
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ%%ΡΠ°Π±Π»ΠΎΠ½}
Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠΎΡΠΌΡ # ΠΈ ##, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅, Π½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΡΠ΅ΠΊΡΡ Ρ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅.
[[email protected] ~]$ foo=file.txt.zip
[[email protected] ~]$ echo ${foo%.*}
file.txt
[[email protected] ~]$ echo ${foo%%.*}
file
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΡΠΌΡ:
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ/ΡΠ°Π±Π»ΠΎΠ½/ΡΡΡΠΎΠΊΠ°}
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ//ΡΠ°Π±Π»ΠΎΠ½/ΡΡΡΠΎΠΊΠ°}
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ/#ΡΠ°Π±Π»ΠΎΠ½/ΡΡΡΠΎΠΊΠ°}
${ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ/%ΡΠ°Π±Π»ΠΎΠ½/ΡΡΡΠΎΠΊΠ°}
Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠΈΡΠΊ Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠ»ΠΈ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΡΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ΅ΡΠ²Π°Ρ ΡΠΎΡΠΌΠ° Π·Π°ΠΌΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ. Π€ΠΎΡΠΌΠ° // Π·Π°ΠΌΠ΅Π½ΠΈΡ Π²ΡΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ. Π€ΠΎΡΠΌΠ° /# Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΌΠ΅Π½Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ, Π° ΡΠΎΡΠΌΠ° /% Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΌΠ΅Π½Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ. Π§Π°ΡΡΡ /ΡΡΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ, ΠΈ ΡΠΎΠ³Π΄Π° ΡΠΎΠ²ΠΏΠ°Π²ΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½.
[[email protected] ~]$ foo=JPG.JPG
[[email protected] ~]$ echo ${foo/JPG/jpg}
jpg.JPG
[[email protected] ~]$ echo ${foo//JPG/jpg}
jpg.jpg
[[email protected] ~]$ echo ${foo/#JPG/jpg}
jpg.JPG
[[email protected] ~]$ echo ${foo/%JPG/jpg}
JPG.jpg
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² β ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ sed ΠΈ cut. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ Π·Π° ΡΡΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ longest-word ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π³Π»Π°Π²Ρ, Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π² ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ${#j} Π²Π·Π°ΠΌΠ΅Π½ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ $(echo $j | wc -c), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ΄ΒΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅:
#!/bin/bash
# longest-word3 : ΠΏΠΎΠΈΡΠΊ ΡΠ°ΠΌΠΎΠΉ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅
for i; do
Β Β Β Β Β Β Β Β if [[ -r $i ]]; then
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β max_word=
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β max_len=
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β for j in $(strings $i); do
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β len=${#j}
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β if (( len > max_len )); then
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β max_len=$len
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β max_word=$j
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β fi
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β done
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β echo "$i: '$max_word' ($max_len characters)"
Β Β Β Β Β Β Β Β fi
Β Β Β Β Β Β Β Β shift
done
ΠΠ°Π»Π΅Π΅, ΡΡΠ°Π²Π½ΠΈΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π΄Π²ΡΡ Π²Π΅ΡΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ time:
[[email protected] ~]$ time longest-word2 dirlist-usr-bin.txt
dirlist-usr-bin.txt: 'scrollkeeper-get-extended-content-list' (38 characters)
real 0m3.618s
user 0m1.544s
sys 0m1.768s
[[email protected] ~]$ time longest-word3 dirlist-usr-bin.txt
dirlist-usr-bin.txt: 'scrollkeeper-get-extended-content-list' (38 characters)
real 0m0.060s
user 0m0.056s
sys 0m0.008s
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ 3,618 ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ 0,06 ΡΠ΅ΠΊΡΠ½Π΄Ρ β Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π Π³Π»Π°Π²Π΅ 7 ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
$((Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅))
Π³Π΄Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ½ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (( )), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠ΅ΠΉΡΡ Π² Π³Π»Π°Π²Π΅ 27 Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (ΠΎΡΠ΅Π½ΠΊΠΈ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ).
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π° Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ.
ΠΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
Π Π³Π»Π°Π²Π΅ 9 ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΡΠΌΠΈ (Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 8) ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΌΠΈ (Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 16) ΡΠΈΡΠ»Π°ΠΌΠΈ. Π Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ Π»ΡΠ±ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π ΡΠ°Π±Π». 34.1 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΠΎΡΠΌΡ Π·Π°ΠΏΠΈΡΠΈ ΡΠΈΡΠ΅Π» Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Π’Π°Π±Π»ΠΈΡΠ° 34.1. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
Π€ΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π§ΠΈΡΠ»ΠΎ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΠ»Π° Π±Π΅Π· ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΒΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° (Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 10)
0ΡΠΈΡΠ»ΠΎ
Π Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΡΠΈΡΠ»Π°, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ Π½ΡΠ»Ρ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΡΠ΅ (Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 8)
0xΡΠΈΡΠ»ΠΎ
Π€ΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π»
ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅#ΡΠΈΡΠ»ΠΎ
Π§ΠΈΡΠ»ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
[[email protected] ~]$ echo $((0xff))
255