步骤1:$ chmod a+x ex1 步骤2:$ mv ex1 /usr/bin 步骤3:$ ex1
$ ex1 /usr
5. 在文本编辑器中录入下面shell程序,保存为ex2,然后执行之。 #!/bin/bash
# If no arguments, then listing the current directory. # Otherwise, listing each subdirectory. if test $# = 0 then ls . else
for i do
ls -l $i | grep '^d' done fi
(二)shell变量(2学时)
1.用户定义的变量。
单步执行下述命令,练习变量赋值,理解反馈信息。 $ dir=/home/mengqc/ex1 $ echo $dir $ echo dir
$ today=Sunday
$ echo $today $Today $ str=\$ echo \2.read命令。
(1)单步执行下述命令:
$ read name -----输入read命令 zhangsan -----输入name的值 $ echo \
Your Name is zhangsan -----显示输出的结果 $ read a b c -----read命令有三个参数
cuit cn edu -----输入三个字符串,中间以空格隔开 $ echo \
Email : cuit.edu.cn -----显示输出结果
(2)将上述四个单步命令编辑为shell程序,取名ex3。 $ vi ex3 (输入四行命令,编后存盘)。 (3)运行shell程序ex3。
$ bash ex3 3.特殊变量
(1)建立一个内容如下的shell程序ex4: echo “Program name is $0”
echo “There are totally $# parameters passed to this program” echo “The last is $?”
echo “The parameters are $*”
(2)按如下执行程序ex4,观察反馈信息: $ bash ex4 this is a test program (三)控制结构(3学时)
1.if语句 (1)
理解并建立shell程序ex5:
Echo “The current directory is `pwd`”
if test - f \ # 如果位置参数$1对应的文件 then echo \ # 是普通文件“- F”则显示本行 else echo \ ordinary file.\ # 否则显示本行 fi
执行ex5,并理解反馈信息: $ bash ex5 ex4 (2)
理解并建立shell程序ex6: if test - f \ then cat $1
else if test - d \
then (cd $1 ;cat * )
else echo \ fi fi
执行ex6,并理解反馈信息。 2.while语句 (1)
理解并建立shell程序ex7: while [ $1 ] do
if [ -f $1 ]
then echo \ cat $1
else echo \ fi
shift #后续位置参数左移 done
执行ex7,并理解反馈信息。
(2)编写求前五个偶数之和的shell程序ex8: loopcount=0 result=0
while [ $loopcount –lt 5 ] do
loopcount=‘expr $loopcount +1’ increment=‘expr $loopcount \\*2’ result= ‘$result + $increment’ done
echo \ 3.for语句 (1)
理解并建立shell程序ex9:
for day in Monday Wednesday Friday Sunday do
echo $day done
执行ex9,并理解反馈信息。 (2)
理解并建立shell程序ex10: mkdir backup for filename in ‘ls’ do
cp $filename backup/$filename if ($? -ne 0) then
echo “copy for $filename failed” fi done
执行ex10,并理解反馈信息。 4.Select语句
理解并建立shell程序ex11: select item in Continue Finsh do
if [ $item = “Finsh” ]; then break fi done
执行ex11,并理解反馈信息。
(四)函数(1学时)
1.理解并建立shell程序ex12: displaymonth() { case $1 in
01 | 1) echo “Month is January”;;
02 | 2) echo “Month is February” ;; 03 | 3) echo “Month is March” ;; 04 | 4) echo “Month is April” ;; 05 | 5) echo “Month is May” ;; 06 | 6) echo “Month is June” ;; 07 | 7) echo “Month is July” ;; 08 | 8) echo “Month is August” ;; 09 | 9) echo “Month is September” ;; 10) echo “Month is October” ;; 11) echo “Month is November” 12) echo “Month is December” *) echo”Invalid parameter” esac }
displaymonth $1
执行ex12,并理解反馈信息。 $ bash ex12 3 $ bash ex12 10
;; ; ;