youshini 发表于 2013-1-26 13:35:44

第8章 判断 & 第7章练习

1 编写一个名为rename的程序,给第1个参数所给定的文件更名,在原名后添加第2个参数包含的一串字符。
即rename memol .sv
应该将文件memol更名为memol.sv
//key:
# cat test
mv $1 $1$2
# chmod +x test
# ls
nu
# ./test nu .txt
# ls
nu.txt
#
2编写一个名为unrename的程序,从第1个参数指定的文件名的后部去掉第2个参数包含的字符串,即
unrename memol.sv .sv
应该把文件memol.sv更名为memol。要保证从尾部去掉字 符串,如
unrename test1test test
应该将tes1test更名为test1(提示:用sed和命令替换)
//key:
mv $1 $1|sed ‘s/$2//’ 即将实参1,含有实参2的地方去掉
$ cat key2
echo "$1"
#$1 | sed 's/$2//'
del=$( echo $1 | sed "s/$2//")
echo $del
mv $1 $del
$



第8章判断
p4
# cat on
user="$1"
if who|grep "^$user"
then
echo "$user is logged on"
fi
# chmod +x on
# ./on root
root tty1 2010-04-22 14:46 (:0)
root pts/0 2010-04-22 14:54 (:0.0)
root is logged on
#

p8
# x1="005"
# [ "$x1" = 5 ]
# echo $?
1
# [ "$x1" -eq 5 ]
# echo $?
0
#

p11
# cat file
if [ ! -e "$1" ]
then
echo "$1 do not exist"
fi
# ./file on
# echo $?
0
#


p16
# cat greetings
hour=$(date |cut -c 19-20)
if [ "$hour" -ge 0 -a "$hour" -le 11 ]
then
echo "GoodMoring"
else
if [ "$hour" -ge 12 -a "$hour" -le 17 ]
then
echo "Good afternoon"
else
echo "good evening"
fi
fi
# ./greetings
Good afternoon
#


# cat g2
hour=$(date |cut -c 19-20)
if [ "$hour" -ge 0 -a "$hour" -le 11 ]
then
echo "gm"
elif [ "$hour" -ge 12 -a "$hour" -le 17 ]
then
echo "ga"
else
echo "ge"
fi

# chmod +x g2
# ./g2
ga
#


p18
# cat number
if [ "$#" -ne 1 ]
then
echo "老大请输入数字(谢谢)"
exit 1
fi
case "$1"
in
0) echo zero;;
1)echo one;;
2)echo two;;
3)echo three;;
4)echo four;;
5)echo five;;
6)echo six;;
7)echo seven;;
8)echo eight;;
9)echo nine;;
esac
# ./number
老大请输入数字(谢谢)
# ./number 8
eight
#

//第二版
# cat number
if [ "$#" -ne 1 ]
then
echo "老大请输入数字(谢谢)"
exit 1
fi
case "$1"
in
0) echo zero;;
1)echo one;;
2)echo two;;
3)echo three;;
4)echo four;;
5)echo five;;
6)echo six;;
7)echo seven;;
8)echo eight;;
9)echo nine;;
*)echo "参数错误阿兄台:请用意味数字";;
esac
# ./number 22
参数错误阿兄台:请用意味数字
#

写一个小程序,通过参数得到一个字符,判断字符的类型。(数字,小写字母,大写字母和特殊字符)
p21
$ cat ctype
if [ "$#" -ne 1 ]
then
echo "用法:ctype 字符"
exit 1
fi
char="$1"
echo $char
numchar=$(echo -n $char | wc -c )
echo "$numchar"
if [ "$numchar" -ne 1 ]
then
echo "请键入单字"
exit 1
fi
case "$char"
in
) echo "数字";;
) echo "小写字母";;
) echo "大写字母";;
*) echo "特殊字符";;
esac
$ bash ctype 34
34
2
请键入单字
$
页: [1]
查看完整版本: 第8章 判断 & 第7章练习