shell 09(shell流程控制语句)

一、if else

  • if语句
if 条件
then
    命令
fi

改写为一行:

if 条件; then 命令; fi

  • if else语句
if 条件
then
    命令
else 
    命令
fi

  • if elif else语句

1.1 if条件判断句的退出状态

linux任何命令的的执行都会有一个退出状态,无论是内置命令还是外部文件命令.还是自定义的 Shell 函数,当它退出(运行结束)时,都会返回一个比较小的整数值给调用(使用)它的程序,这就是命令的退出状态。


大多数命令状态0代表成功,非0代表失败.也有特殊的命令,比如 diff 命令用来比较两个文件的不同,对于"没有差别”的文件返回 0,对于“找到差别”的文件返回 1,对无效文件名返回 2

shell 中,有多种方式取得命令的退出状态,其中 $? 是最常见的一种

#!/bin/bash

read -p "请输入文件全名:" filename
read -p "请输入数据:" data

if [ -w $filename && -n $data ]
then
     echo $data > $filename
     echo "文件写入成功"
else
     echo "文件写入失败"
fi

二、case in语句 

  • 每一匹配模式必须以右括号结束。
  • 取值可以为变量或常数。
  • 匹配发现取值符合某一模式后,其间所有命令开始执行直到;;(类似break,不可以替代否则语法报错)。
  • 如果无一匹配模式,使用星号*捕获该值,再执行后面的命令
  • case、in 和 esac 都是 Shell 关键字,esac就是case的反写在这里代表结束case
  • 匹配模式:可以是一个数字、一个字符串,甚至是一个简单正则表达式

三、while语句 

 四、until

until 也是循环结构语句,until 循环与 while 循环在处理方式上刚好相反,循环条件为false会一直循环,条件为true停止循环.

 五、for循环

六、select

select in 循环用来增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能,select in 是 Shell 独有的一种循环,非常适合终端(Terminal) 这样的交场,其他语言没有:

猜你喜欢

转载自blog.csdn.net/peng_258/article/details/132457508