}
Check_if_root () # ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
{ # ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° "ex39.sh".
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "ΠΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ root."
exit $E_NOTROOT
fi
}
CreateTempfileName () # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ "ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ" ΠΈΠΌΠ΅Π½ΠΈ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
{ # ΠΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° "ex51.sh".
prefix=temp
suffix=`eval date +%s`
Tempfilename=$prefix.$suffix
}
isalpha2 () # ΠΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π°Π»ΡΠ°Π²ΠΈΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
{ # ΠΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° "isalpha.sh".
[ $# -eq 1 ] || return $FAILURE
case $1 in
*[!a-zA-Z]*|"") return $FAILURE;;
*) return $SUCCESS;;
esac # Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ S.C.
}
abs () # ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
{ # ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΈΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
# Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 255.
E_ARGERR=-999999
if [ -z "$1" ] # ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
then
return $E_ARGERR # ΠΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ .
fi
if [ "$1" -ge 0 ] # ΠΡΠ»ΠΈ Π½Π΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅,
then #
absval=$1 # ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ.
else # ΠΠ½Π°ΡΠ΅,
let "absval = (( 0 - $1 ))" # ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΠΊ.
fi
return $absval
}
tolower () # ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
{
if [ -z "$1" ] # ΠΡΠ»ΠΈ Π½Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°,
then #+ Π²ΡΠ΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
echo "(null)"
return #+ ΠΈ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ.
fi
echo " [email protected]" | tr A-Z a-z
# ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ( [email protected]).
return
# ΠΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
# ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
# oldvar="A seT of miXed-caSe LEtTerS"
# newvar=`tolower "$oldvar"`
# echo "$newvar" # a set of mixed-case letters
#
# Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅: ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ.
# toupper() [ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ].
}
ΠΠ»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Π²ΡΠ΄Π΅Π»ΡΠΉΡΠ΅ ΠΈΡ ΠΎΡΠΎΠ±ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
## ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!
rm -rf *.zzy ## ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ "-rf", Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ "rm", ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΠΏΠ°ΡΠ½Π°,
##+ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ.
#+ ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
# ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
#+ ΡΡΠΎ Π²ΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ,
#+ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
#* ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
#o ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°.
#> ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
while [ "$var1" != "end" ] #> while test "$var1" != "end"
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if-test.
#!/bin/bash
COMMENT_BLOCK=
# ΠΡΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΠΌ Π½ΠΈΠ±ΡΠ΄Ρ,
#+ ΡΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
if [ $COMMENT_BLOCK ]; then
ΠΠ»ΠΎΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ --
=================================
ΠΡΠΎ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΡΠΎ Π΄ΡΡΠ³Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
=================================
echo "ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ."
ΠΡΠΎΡ Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅! ΠΡΡΡΠΎ!
fi
echo "ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π° Π½Π° stdout."
exit 0
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $?, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ -- ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ.
#!/bin/bash
SUCCESS=0
E_BADINPUT=65
test "$1" -ne 0 -o "$1" -eq 0 2>/dev/null
# ΠΡΠΎΠ²Π΅ΡΠΊΠ°: "ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ ΠΈΠ»ΠΈ Π½Π΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ".
# 2>/dev/null ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
if [ $? -ne "$SUCCESS" ]
then
echo "ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: `basename $0` ΡΠ΅Π»ΠΎΠ΅_ΡΠΈΡΠ»ΠΎ"
exit $E_BADINPUT
fi
let "sum = $1 + 25" # ΠΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ $1 Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ.
echo "Sum = $sum"
# ΠΡΠ±Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
exit 0
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, 0 - 255 -- ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΠΈΡΡ Π² stdout.
ΠΡΠΈΠΌΠ΅Ρ 33-10. ΠΠ΅ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
#!/bin/bash
# multiplication.sh
multiply () # Π€ΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
{
local product=1
until [ -z "$1" ] # ΠΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°...
do
let "product *= $1"
shift
done
echo $product # ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΡΠΊΡΠ°Π½,
} #+ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
mult1=15383; mult2=25211
val1=`multiply $mult1 $mult2`
echo "$mult1 X $mult2 = $val1"
# 387820813
mult1=25; mult2=5; mult3=20
val2=`multiply $mult1 $mult2 $mult3`
echo "$mult1 X $mult2 X $mult3 = $val2"
# 2500
mult1=188; mult2=37; mult3=25; mult4=47
val3=`multiply $mult1 $mult2 $mult3 $mult4`
echo "$mult1 X $mult2 X $mult3 X mult4 = $val3"
# 8173300
exit 0
Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΈΠ΅ΠΌ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ "Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ" ΠΈ Π½Π΅ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
capitalize_ichar () # ΠΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π²ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
{ #+ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ.
string0=" [email protected]" # ΠΡΠΈΠ½ΡΡΡ Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
firstchar=${string0:0:1} # ΠΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
string1=${string0:1} # ΠΡΡΠ°ΡΠΎΠΊ ΡΡΡΠΎΠΊΠΈ.
FirstChar=`echo "$firstchar" | tr a-z A-Z`
# ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ.
echo "$FirstChar$string1" # ΠΡΠ΄Π°ΡΡ Π½Π° stdout.
}
newstring=`capitalize_ichar "each sentence should start with a capital letter."`
echo "$newstring" # Each sentence should start with a capital letter.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ, ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ "Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ" Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ 33-11. ΠΠ΅ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
#!/bin/bash
# sum-product.sh
# Π€ΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ "Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ" Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
sum_and_product () # ΠΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΡΠΌΠΌΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
{
echo $(( $1 + $2 )) $(( $1 * $2 ))
# ΠΡΠ²ΠΎΠ΄ Π½Π° stdout Π΄Π²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ.
}
echo
echo "ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ: "
read first
echo
echo "ΠΡΠΎΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ: "
read second
echo
retval=`sum_and_product $first $second` # ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
sum=`echo "$retval" | awk '{print $1}'` # ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΏΠΎΠ»Π΅).
product=`echo "$retval" | awk '{print $2}'` # ΠΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΏΠΎΠ»Π΅).
echo "$first + $second = $sum"
echo "$first * $second = $product"
echo
exit 0
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Ρ ΠΈΡΡΠΎΡΡΡ -- ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΠ½ΠΊΡΠΈΡ, ΠΈ "Π²ΠΎΠ·Π²ΡΠ°Ρ" ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΡ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ, ΡΠ΅ΡΠ΅Π· Π²ΡΠ²ΠΎΠ΄ Π½Π° stdout, Π° Π·Π°ΡΠ΅ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅ ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ( ... ) -- Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ².
ΠΡΠΈΠΌΠ΅Ρ 33-12. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ
#!/bin/bash
# array-function.sh: ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΈ...
# "Π²ΠΎΠ·Π²ΡΠ°Ρ" ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ
Pass_Array ()
{
local passed_array # ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.
passed_array=( `echo "$1"` )
echo "${passed_array[@]}"
# Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π½ΠΎΠ²ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅,
#+ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π² ΡΡΠ½ΠΊΡΠΈΠΈ.
}
original_array=( element1 element2 element3 element4 element5 )
echo
echo "original_array = ${original_array[@]}"
# Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
# Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π² ΡΡΠ½ΠΊΡΠΈΡ.
# **********************************
argument=`echo ${original_array[@]}`
# **********************************
# ΠΠΎΠΌΠ΅ΡΡΠΈΠ² Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ,
#+ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΈΡ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
#
# ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΡΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
# Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ.
# *****************************************
returned_array=( `Pass_Array "$argument"` )
# *****************************************
# ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΠΌΠ°ΡΡΠΈΠ².
echo "returned_array = ${returned_array[@]}"
echo "============================================================="
# Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ
#+ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
Pass_Array "$argument"
# Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², Π½ΠΎ...
#+ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½.
echo "Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² (Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ) = ${passed_array[@]}"
# "ΠΠ£Π‘Π’ΠΠ" ΠΠΠΠ§ΠΠΠΠ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.
echo
exit 0
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΠΈ, Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΠΡΠΈΠΌΠ΅Ρ A-11.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Ρ Π΄Π²ΠΎΠΉΠ½ΡΠΌΠΈ ΠΊΡΡΠ³Π»ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ C-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»ΠΎΠ² for ΠΈ while. Π‘ΠΌ. ΠΡΠΈΠΌΠ΅Ρ 10-12 ΠΈ ΠΡΠΈΠΌΠ΅Ρ 10-17.
ΠΠ½ΠΎΠ³Π΄Π° ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ "ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ" Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΈΠ»ΡΡΡ, Π½ΠΎ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ tr ΠΈ grep.
# ΠΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° "wstrings.sh".
wlist=`strings "$1" | tr A-Z a-z | tr '[:space:]' Z | \
tr -cs '[:alpha:]' Z | tr -s '\173-\377' Z | tr Z ' '`
ΠΡΠΈΠΌΠ΅Ρ 33-13. ΠΠ³ΡΡ Ρ Π°Π½Π°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ
#!/bin/bash
# agram.sh: ΠΠ³ΡΡ Ρ Π°Π½Π°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.