跳转到内容
新建笔记

Shell 控制流

语法

终端窗口
if ....; then
....
elif ....; then
....
else
....
fi

示例:

#!/bin/bash
number=10
if [ $number -eq 10 ]; then
echo "Number is 10."
fi

[] 条件测试,[] 中前后⼀定要加空格。

注意:bash shell 支持 C 式 for 循环

C 语言风格

终端窗口
#写法一
for ((i=1; i<=100; i++))
do
echo $i
done
#写法二
for ((i=1; i<=100; i++)) do echo $i
done
#写法三
for ((i=1; i<=100; i++)) do echo $i;done

Python 风格(in 的使用)

#!/bin/bash
for i in {1...5}; do #;必须有
echo "Number $i"
done

Seq 的使用

#!/bin/bash
# 注意代码中不是单引号
for i in `seq 1 10`
#或
for i in $(seq 1 10)
do
echo $i
done
终端窗口
for i in 的各种用法 :
for i in “file1” “file2” “file3”
for i in /boot/*
for i in /etc/*.conf
for i in $(seq -w 10) --》等宽的01-10
for i in {1..10}
for i in $( ls )
for I in $(< file)
for i in “$@” --》取所有位置参数,可简写为for i
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
((count++))
done

在使用[ ]进行条件测试时,务必注意空格,如[ $a -eq $b ]是正确的,而[$a -eq $b]是错误的。

终端窗口
name=`basename $0 .sh`
case $1 in
s|start)
echo "start..."
;;
stop)
echo "stop ..."
;;
reload)
echo "reload..."
;;
*)
echo "Usage: $name [start|stop|reload]"
exit 1
;;
esac
exit 0