shell的控制流程语句

shell分为两大类:

Bourne shell (包括 sh, ksh, bash):Bourne shell ( sh),Korn shell ( ksh),Bourne Again shell ( bash),POSIX shell ( sh)。

 

C shell (包括 csh and tcsh):C shell ( csh),TENEX/TOPS C shell ( tcsh)。

shell调试:常用echo打印变量值;真实的调试模式-sh -x shellscript.sh,执行脚本并打印所有变量的值;只检查语法的调试模式-sh -n script.sh,返回语法错误。

流程控制语法如下:

#if语句
if...;then
...
elif..;then
...
else
...
fi
#case语句
case...in
..) something;;
esac
#select语句,与用户进行交互
select var in...;do
...
...$var can be used...
done
...$var can be used...
#while循环
while [ 条件1 ]
do
...
done
#until
until [ 条件 ]
do
done
#for循环
for (( 条件1; 条件2; 条件3 ))
do
done
for var in...
do
...
done

注意的是: select是bash的一个扩展应用,所以 头语句应该为“#!/bin/bash”,否则select无法使用。select的效果是列出变量,等待用户选择。

补:与用户进行交互,除了select,还有read命令,用法“read var”,获得用户的输入并赋值给变量var。

if/while中的条件判断通常使用“[]”来进行条件测试

[ -f "xx" ]:判断是否为一个文件

[ -x "xx" ]:判断是否可执行

[ -n "$var"]:判断var是否有值

[ "$a"="$b"]:判断变量a和b是否相等

其他有对文件的测试还有:

-d 目录

-s 文件非空

-f 正规文件
-w 可写
-L 符号链接
-u 文件有 suid 设置
-r 可读
-x 可执行

 对字符串的测试还有: 

!= 两个字符串不相同
-z 空串

对数值的测试有:
-eq 数值相等 (=)   -ne 数值不相等 (!=)
-gt 前者大于后者 (>)   -lt   前者小于后者 (<)
-le 前者小于等于后者 ( ) -ge 前者大于等于后者 ( )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值