8. 结构化语句
主要分为 条件语句 和 循环语句:
if 条件语句
if条件语句的常见格式(其中 if 后面所带的 command 为判断条件,条件为真执行 then 后面的 commands,条件为假则执行 else 后面的 commands):
if条件语句的常见条件:数值判断、字符串判断、文件判断
数值判断:
用法 | 解释 |
---|---|
[ INT1 -eq INT2 ] | INT1 和 INT2 两数相等返回为真 |
[ INT1 -ne INT2 ] | INT1 和 INT2 两数不等返回为真 |
[ INT1 -gt INT2 ] | INT1 大于 INT2 返回为真 |
[ INT1 -ge INT2 ] | INT1 大于等于 INT2 返回为真 |
[ INT1 -lt INT2 ] | INT1 小于 INT2 返回为真 |
[ INT1 -le INT2 ] | INT1 小于等于 INT2 返回为真 |
字符串判断:
用法 | 解释 |
---|---|
[ -z STRING ] | 如果STRING的长度为零则返回为真,即空是真 |
[ -n STRING ] | 如果STRING的长度非零则返回为真,即非空是真 |
[ STRING1 ] | 如果字符串不为空则返回为真,与-n类似 |
[ STRING1 == STRING2 ] | 如果两个字符串相同则返回为真 |
[ STRING1 != STRING2 ] | 如果字符串不相同则返回为真 |
[ STRING1 < STRING2 ] | 如果 STRING1字典排序在STRING2前面则返回为真。> 同理 |
文件判断:
用法 | 解释 |
---|---|
[ -a FILE ] | 如果 FILE 存在则为真 |
[ -d FILE ] | 如果 FILE 存在且是一个目录则返回为真 |
[ -f FILE ] | 如果 FILE 存在且是一个普通文件则返回为真 |
示例:
- 如果不存在 ok.txt 这个文件,就创建一个名为 ok.txt 的文件
for 循环语句
常见的格式:
示例:
while 循环
常见格式:
示例:
$ cat config
sample1
sample2
sample3
$ cat config | while read id
do
touch $id
done