shell入门之----流程控制

shell编程-条件结构
测试
test 条件
条件为真返回 0,条件为假返回 1
[ 条件 ]
test 能够理解3中类型的表达式 
1.文件测试
2.字符串比较
3.数字比较
字符串
    -n STRING
    the length of STRING is nonzero
    -z STRING
    the length of STRING is zero
     STRING1 = STRING2
           the strings are equal
     STRING1 != STRING2
           the strings are not equal
数字
    eq 等于       ne 不等于
    ge 大于等于    le 小于等于 
    gt 大于       lt 小于 
文件
test
    -f 存在且是正规文件 
    -d 存在且是目录
    -h 存在且是符号链接 
    -b 块设备
    -c 字符设备
    -e 文件存在

shell分支if语句
流控制:
•在一个shell脚本中的命令执行顺序称作脚本的流。大多数脚本会根据一个或多个条件来改变它们的流。 
•流控制命令:能让脚本的流根据条件而改变的命令称为条件流控制命令 
•exit语句:退出程序的执行,并返回一个返回码,返回码为0正常退出,非0为非正常退出,例如: 
•exit 0

条件判断
If代码返回0表示真,非0为假
if语句语法如下: 
if list1
then
      list2
elif  list3
then
			list4
else
			list5
fi

例:
#!/bin/bash
read -p "请输入号码: " num 
if [ $num = 1 ];then
        echo "1"
elif [ $num = 2 ];then
				echo "2"
else 
				echo "输入有误!"
fi

例:脚本if.sh,必须在脚本后加上适当的参数脚本才能正确执行 
#!/bin/bash
if [ "$1" = "hello" ]; then
        echo "Hello! How are you ?"
elif [ "$1" = "" ]; then
				echo "You MUST input parameters"
else
				echo "The only accept parameter is hello"
fi

练习:
1)检测apache是否运行,如果没有运行则启动,并记录启动的时间,保存到日志中。 
2)测试ip地址主机位从2到100的机器是否存活,并把存活的机器记录到文本文件alivehost.txt内。(使用ping命令)

多个条件联合
逻辑与
if [ $condition1 ] && [ $condition2 ] 
if [ $condition -a $condition2 ]
if [[ $condition1 && $condition2 ]]
逻辑或
if [ $condition1 ] || [ $condition2 ] 
if [ $condition -o $condition2 ]
if [[ $condition1 || $condition2 ]]

练习:
编写脚本port.sh,执行脚本后显示系统的httpd、ftp、ssh、sendmail这些服务是否开启

case
case 语句是 shell 中流控制的第二种方式,语法如下: 
case $word in
     pattern1)
						list1
						;; 
     pattern2)
						list2
						;; 
     patternN)
          	listN
          	;;
		 *)
						list*
						;; 
esac
命令;;表明流应该跳转到case语句的最后,类似C语言中的break指令。
练习:建立脚本case.sh,当执行时,要求我们在键盘输入适当的值(one|two|three),当输入正确时并打印,当输入错误 时会提示你,应该输入正确的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值