Linux Shell 编程参考文档
(1)用 vi 编辑程序
[root@localhost bin]#vi test5 #! /bin/Bash read ar1 read ar2
[ “$ar1” = “$ar2” ]
echo $? #?保存前一个命令的返回码 (2)设置权限
[root@localhost bin]#chmod +x test5 (3)执行
[root@localhost root]#./ test5 aaa bbb 1
注意:
”[”后面和”]”前面及等号“=“的前后都应有一个空格;注意这里是程序的退出情况, 如果 ar1 和 ar2 的字符串是不想等的非正常退出,输出结果为 1。
(1)用 vi 编辑程序
实例 1-7: 比较字符串长度是否大于零
[root@localhost bin]#vi test6 #! /bin/Bash read ar
[ -n “$ar” ] echo $? //保存前一个命令的返回码 (2)设置权限
[root@localhost bin]#chmod +x test6 (3)执行
[root@localhost bin]#./ test6 0
运行结果 1 表示 ar 的小于等于零,0 表示 ar 的长度大于零。
注意:
1-5-2 数字比较
在 Bash Shell 编程中的关系运算有别于其他编程语言,用表 1-2 中的运算符用 test 语句 表示大小的比较。
表 1-2 用 test 比较的运算符
Linux Shell编程 第12页/共26页
Linux shell编程参考文档
运算符号 -eq -ge -le -ne -gt -lt
含 相等 大于等于 小于等于 不等于 大于 小于
义 实例 1-8:比较两个数字是否相等
(1)用 vi 编辑程序
[root@localhost bin]#vi test7 #! /bin/Bash read x,y
if test $x –eq $y
then
echo “$x=$y”
else
echo “$x!=$y”
fi
(2)设置权限
[root@localhost bin]#chmod +x test7 (3)执行
[root@localhost bin]#./ test7 50 100 50!=100
[root@localhost bin]#./ test7 150 150 150= =150
1-5-3 逻辑操作
在 Shell 程序设计中的逻辑运算符如表 1-3 所示。
1-3 Shell 中的逻辑运算符
运算符号 ! -a -o 含 义 反:与一个逻辑值相反的逻辑值 与(and):两个逻辑值为“是”返回值为“是”,反之为“否” 或(or): 两个逻辑值有一个为“是”,返回值就是“是”
实例 1-9:分别给两个字符变量赋值,一个变量赋予一定的值,另一个变量为空,
Linux Shell编程 第13页/共26页
Linux Shell 编程参考文档
求两者的与、或操作。 (1)用 vi 编辑程序
[root@localhost bin]#vi test8 #! /bin/Bash part1 =”1111”
part2 =” ” #part2 为空 [ “$ part1” –a “$ part2”] echo $? #保存前一个命令的返回码 [ “$ part1” –o “$ part2”] echo $? (2)设置权限
[root@localhost bin]#chmod +x test8 (3)执行
[root@localhost bin]#./ test8 1 0
1-5-4 文件操作
文件测试操作表达式通常是为了测试文件的信息,一般由脚本来决定文件是否应该备份、 复制或删除。由于 test 关于文件的操作符有很多,在表 1-4 中只列举一些常用的操作符。
表 1-4
文件测试操作符 含 义 运算符号 -d -f -L -r -s -w -x 对象存在且为目录返回值为“是” 对象存在且为文件返回值为“是” 对象存在且为符号连接返回值为“是” 对象存在且可读则返回值为“是” 对象存在且长度非零则返回值为“是” 对象存在且且可写则返回值为“是” 对象存在且且可执行则返回值为“是”
实例 1-10:判断 zb 目录是否存在于/root 下。
(1)用 vi 编辑程序
[root@localhost bin]#vi test9 #! /bin/Bash [ -d /root/zb ]
echo $? #保存前一个命令的返回码
(2)设置权限
[root@localhost bin]#chmod +x test9
(3)执行 [root@localhost bint]#./ test9
Linux Shell编程 第14页/共26页
Linux shell编程参考文档
(4)在/root 添加 zb 目录
[root@localhost bin]#mkdir zb
(5)执行
[root@localhost bin]#./test9 0
注意:
运行结果是返回参数“$?”,结果 1 表示判断的目录不存在,0 表示判断的目录不存在。
目录下的信息,如为文件显示文件的内容。
实例 1-11:编写一个 Shell 程序 test10,输入一个字符串,如果是目录,则显示
(1)用 vi 编辑程序
[root@localhost bin]#vi test10 #! /bin/Bash
echo “Please enter the directory name or file name” read DORF
if [ -d $DORF ] then ls $DORF
elif [ -f $DORF ] then
cat $DORF else
echo “input error! ” fi
(2)设置权限
[root@localhost bin]#chmod +x test10 (3)执行
[root@localhost bin]#./ test10
1-6 循环结构语句
?? Shell 的循环语句
Shell 常见的循环语句有 for 循环、while 循环语句和 until 循环。
1-6-1 for 循环
语法:
Linux Shell编程 第15页/共26页
Linux Shell 编程参考文档
for 变量 in 列表 do
操作 done
变量要在循环内部用来指列表当中的对象。
注意:
列表是在 for 循环的内部要操作的对象,可以是字符串也可以是文件,如果是文件则为文件
名。
两行输出。
实例 1-12:在列表中的值:a,b,c,e,I,2,4,6,8
用循环的方式把字符与数字分成
(1)用 vi 编辑脚本程序 test11 [root@localhost bin]#vi test11 #! /bin/Bash
for i in a,b,c,e,I 2,4,6,8 do echo $i done
(2)设置权限
[root@localhost bin]#chmod +x test11 (3)执行
[root@localhost bin]#./ test11 a,b,c,e,i 2,4,6,8
注意:
在循环列表中的空格可表示换行。
实例 1-13:删除垃圾箱中的所有文件。
分析:在本机中,垃圾箱的位置是在$HOME/.Trash 中,因而是在删除$HOME/.Trash 列表当 中的所有文件,程序脚本如下。 (1)用 vi编辑脚本程序 test12 [root@localhost bin]#vi test12 #! /bin/Bash
for i in $HOME/.Trash/* do
rm $i
echo “$i has been deleted!” done
Linux Shell编程 第16页/共26页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库linux课程设计(学生版)(4)在线全文阅读。
相关推荐: