shell-变量、判断、重复动作
if循环
if condition
then
statements1
else
statements2
fi
特殊字符含义(’…’ 表示模式不在这里,’:’ 不做任何事儿)
ps:condition与test判断格式大致相似
while循环
while condition #condition为真时继续循环,否则退出
do
statements
done
until循环:
until condition #condition判断为假的时候退出循环。否则继续
do
staments
done
break #退出循环
continue #跳出循环体, 开始下一段循环
for循环:
for i in `ls *.jpg` #遍历当前目录下以.jpg问拓展名的文件
do
statements
done
#ps:如果in后面的条件省略,shell会遍历shell会遍历当前命令行的参数,等价for I in “$@”
case语句:
case 值 in
pattern1)
commed1
commed2
;;
pattern2)
commed1
commed2
;;
*)
echo “unable to match”
esac #结束语,非必须。
#ps:匹配发现符合某一模式后,期间所有命令开始执行到;;。;;类似break,作用就是跳转到case语句最后,一旦模式匹配成功,就不会在执行其他的匹配,如果没有相应模式匹配成功,则执行*) 该行匹配。pattern可以为数字,字符串,-f等模式
函数声明:
funcName (){
statements
}
判断条件中NOT,AND,OR表示方法
#NOT:
if ! condition
then
statements
fi
#AND:
if condition1 && condition
then
statements
fi
#OR:
if condition1 || condition
then
statements
fi
来一个简单的判断shell,判断输入的数字类型
#!/bin/bash
read -p "input a key:" key
case $key in
[a-z]|[A-Z])
echo "it's a letter."
;;
[0-9])
echo "it's a number."
;;
*)
echo "it's a *"
esac