Linux-03shell语法3
判断语句if…then形式
[*]类似于C/C++中的if-else语句。
单层if
[*]命令格式:
if condition
then
语句1
语句2
...
fi
[*]示例:
a=3
b=4
if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ]
then
echo ${a}在范围内
fi
[*]输出结果:
3在范围内单层if-else
[*]命令格式
if condition
then
语句1
语句2
...
else
语句1
语句2
...
fi
[*]示例:
a=3
b=4
if ! [ "$a" -lt "$b" ]
then
echo ${a}不小于${b}
else
echo ${a}小于${b}
fi
[*]输出结果:
3小于4多层if-elif-elif-else
[*]命令格式
if condition
then
语句1
语句2
...
elif condition
then
语句1
语句2
...
elif condition
then
语句1
语句2
else
语句1
语句2
...
fi
[*]示例:
a=4
if [ $a -eq 1 ]
then
echo ${a}等于1
elif [ $a -eq 2 ]
then
echo ${a}等于2
elif [ $a -eq 3 ]
then
echo ${a}等于3
else
echo 其他
fi
[*]输出结果:
其他case…esac形式
[*]类似于C/C++中的switch语句。
[*]命令格式
case $变量名称 in
值1)
语句1
语句2
...
;;# 类似于C/C++中的break
值2)
语句1
语句2
...
;;
*)# 类似于C/C++中的default
语句1
语句2
...
;;
esac
[*]示例:
a=4
case $a in
1)
echo ${a}等于1
;;
2)
echo ${a}等于2
;;
3)
echo ${a}等于3
;;
*)
echo 其他
;;
esac
[*]输出结果:
其他循环语句
for…in…do…done
[*]命令格式:
for var in val1 val2 val3
do
语句1
语句2
...
done
[*]示例1,输出a 2 cc,每个元素一行:
for i in a 2 cc
do
echo $i
done
[*]示例2,输出当前路径下的所有文件名,每个文件名一行:
for file in `ls`
do
echo $file
done
[*]示例3,输出1-10
for i in $(seq 1 10)
do
echo $i
done
[*]示例4,使用{1..10} 或者
for i in {a..z}
do
echo $i
donefor ((…;…;…)) do…done
[*]命令格式:
for ((expression; condition; expression))
do
语句1
语句2
done
[*]示例,输出1-10,每个数占一行:
for ((i=1; i<=10; i++))
do
echo $i
done同时重定向stdin和stdout
[*]创建bash脚本:
while condition
do
语句1
语句2
...
done
[*]创建input.txt,里面的内容为:
while read name
do
echo $name
done
[*]执行命令:
until condition
do
语句1
语句2
...
done引入外部脚本
概述
[*]类似于C/C++中的include操作,bash也可以引入其他文件中的代码。
[*]语法格式:
until [ "${word}" == "yes" ] || [ "${word}" == "YES" ]
do
read -p "Please input yes/YES to stop this program: " word
done示例
[*]创建test1.sh,内容为:
while read name
do
for ((i=1;i<=10;i++))
do
case $i in
8)
break
;;
*)
echo $i
;;
esac
done
done
[*]然后创建test2.sh,内容为:
for ((i=1;i<=10;i++))
do
if [ `expr $i % 2` -eq 0 ]
then
continue
fi
echo $i
done
[*]执行命令:
func_name() {# function关键字可以省略
语句1
语句2
...
}
来源:[url=https://www.cnblogs.com/han-fei/p/178926while read name
do
echo $name
done.html]https://www.cnblogs.com/han-fei/p/178926while read name
do
echo $name
done.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]