-
条件判断式
if判断式
if [ 条件判断式1 ];then
执行动作
elif [ 条件判断式2 ];then
执行动作
else
不满足1,2,执行的动作
fi
if [ 条件判断式1 ]
then
执行动作
elif [ 条件判断式2 ]
then
执行动作
else
不满足1,2,执行的动作
fi
case判断式
case $变量名 in
"第一个变量的内容")
程序段
;;
"第二个变量的内容")
程序段
;;
"第三个变量的内容")
程序段
;;
*) #最后一个变量的内容都会用*来代表所有其他值
程序段
;;
esac
2.循环
while循环 当condition满足时就执行
while [ condition ] #中括号内的判断式 注意condition前后有空格
do #循环开始
程序段
done #循环结束
until循环 当condition满足时,就退出循环
until [ condition ]
do
程序段
done
for循环 固定循环 数值循环
for var in con1 con2 con3 ... #执行固定次数的循环,第一次满足con1,第二次满足con2 。。。。
do
程序段
done
eg:
for test in I don't know if this'll work
do
echo "word:$test
done
执行结果
word:I
word:dont know thisll
word:work
结果一团混乱:shell 试图识别单引号’,未成功。因此解决办法
1.转义字符
2.用双引号将单引号括起来
for test in I don\'t know if "this'll" work
do
echo "word:$test
done
执行结果
word:I
word:don't
word:know
word:this'll
word:work
正常
for从命令读取值
states文件中存放数据列表
$cat states
A
B
C
D
shell 脚本为
#!/bin/bash
file="states"
fore state in `cat $file`
do
echo "This is $state"
done
执行脚本输出
This is A
This is B
This is C
This is D
注意 命令用反引号 `cat $file` 括起来
for (( 初始值; 限制值; 执行步长 ))
do
程序段
done
3.function函数功能
function fname () {
程序段
}
# fname 就是我们自定义的函数名称
注
shell script 的执行方式是从上到下、从左到右,因此 function 的设置一定要在程序的最前面。