更多的结构化命令
1.for命令
for var in list
do
commands
done
var会依次迭代list中的值,当list中有空格或者单引号时,可以用/或者“”
来解决这个问题。shell并不会将双引号当作值的一部分。
2.更改字段分隔符
IFS叫做内部字段分隔符,IFS环境变量定义了bash shell用作字段分隔符的一系列字符
默认情况下会将下列字符当作字段分隔符:
空格
制表符
换行符
如果bash shell在数据中看到了这些字符中任意一个,它就会假定这表明了列表中一个
新数段的开始,如果想要修改IFS值,使其只能识别换行符,那么IFS=$'\n'
3.for命令
如:
for(( i=1;i <= 10;i++))
do
echo "The next number is $i"
done
会输出The next number is 1
·
·
The next number is 10
4.while命令
while test command
do
other commands
done
如果command的状态码返回是0,则它会在每次迭代的一开始测试test命令。
如果非零,则会停止。
5.until命令
与while正好相反
until test command
do
other commands
done
6.break
for var1 in 1 2 3 4 5 6 7 8 9 10
do
if [ $var1 -eq 5 ]
then
break
fi
echo "Tteration number :$var1"
done
echo "The for loop is completed"
当var1迭代到5时,就会停止循环。
如果有多层循环, break n可以停止n层循环
7.continue命令
与C语言一样,提前中止某次循环中的命令,但并不会完全终止整个循环
8.查找可执行文件
#!/bin/bash
IFS=:
for folder in $PATH
do
echo "$folder:"
for file in $folder/*
do
if [ -x $file ]
then
echo " $file"
fi
done
done