shell编程总结及感悟

一、流程控制:while/until 循环

1.while,当遇到一个非零退出状态的时候while 退出循环

while语法:while commands; do commands; done

2.跳出循环

break 命令立即终止一个循环, 且程序继续执行循环之后的语句。continue 命令导致程序跳过循环中剩余的语句,且程序继续执行 下一次循环

3.until,当遇到一个0退出状态的时候until退出循环


二、流程控制:case 分支
1.case语句
Bash 的多选复合命令称为 case,其语法规则如下:
case word in
[pattern [| pattern]...) commands ;;]...
esac
2.模式
case 语句使用的模式和路径展开中使用的相同。模式以一个 “)” 为终止符。
常用的有效模式:
a):若单词为 “a”,则匹配
[[:alpha:]]):若单词是一个字母字符,则匹配
???):若单词只有3个字符,则匹配
*.txt):若单词以 “.txt” 字符结尾,则匹配
*):匹配任意单词。可将此模式做为 case 命令的最后一个模式,以捕捉到任何可能的无效值。

3.匹配多个测试条件以执行多个动作
  • 添加“;;&” 的语法允许 case 语句继续执行下一条测试,而不是简单地终止运行

三、流程控制:for 循环
1.for: 传统 shell 格式
for variable [in words]; do
  commands
done
test测试命令

test命令用于检查某个条件是否成立,它可以进行数值、字符串和文件三个方面的测试,其测试符和相应的功能分别如下:

(1)数值测试:

        -eq:等于则为真
        -ne:不等于则为真
        -gt:大于则为真
        -ge:大于等于则为真
        -lt:小于则为真
        -le:小于等于则为真

(2)字符串测试:

        =:等于则为真
        !=:不相等则为真
        -z字符串:字符串长度伪则为真
        -n字符串:字符串长度不伪则为真

(3)文件测试:

      -e文件名:如果文件存在则为真
  -r文件名:如果文件存在且可读则为真
  -w文件名:如果文件存在且可写则为真
  -x文件名:如果文件存在且可执行则为真
  -s文件名:如果文件存在且至少有一个字符则为真
  -d文件名:如果文件存在且为目录则为真
     -f文件名:如果文件存在且为普通文件则为真
  -c文件名:如果文件存在且为字符型特殊文件则为真
  -b文件名:如果文件存在且为块特殊文件则为真

&& 与 ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是“&&”和”||”。下面笔者把这几种情况全列出:

1) command1 ; command2

2) command1 && command2

3) command1 || command2





你可能感兴趣的:(linux)