总字数 633
预计阅读时间 2 分钟
判断
1 | if condition1 |
如果else没有语句执行
则不能留空 , 最好直接不写这个else
举例
1 | if [ `ps ax | grep -c "ssh"` -ge 1 ] |
循环
for循环
1 | for ((i=1 ; i<=10 ; i++)) |
for (( ; ; ))
- 死循环
foreach
bash支持对集合进行迭代的foreach类型语法
使用for ... in ...
1 | # seq命令可以生成一个序列 |
如果一个命令返回的是一个集合 , 也可以执行循环迭代
1 | for item in `ls /usr/local` |
当然如果是找一个目录下的文件 , 也可以不用ls命令
for循环自带路径查找功能
1 | for item in /usr/local/* |
while循环
while循环是在判断条件为false的时候结束循环
1 | cnt=1 |
while :
或者while true
表示死循环
until循环
格式与while循环基本一致 , 只不过是当判断条件为true的时候结束循环
1 | cnt=1 |
break与continue
表示跳出循环以及继续下一次循环 , 与其他语言当中类似
多选择语句
类似其他语言当中的switch , bash当中使用case关键字
1 | echo "input a number:" |
函数
shell当中可以自定义函数
1 | function myFunc() { |
说明 :
- 与获取脚本的参数类似 , 使用
$序号
或者${序号}
来获取
但是如果到了10 , 就必须写作${10}
, 否则会与$1产生歧义 function
关键字也可以省略
文件包含
一个shell脚本当中可以引入另一个shell脚本
1 | . /home/sookie/test2.sh |
被引入的文件并不需要可执行权限