Linux Command Line and Shell Scripting Bible__第10章
时间:2010-09-14 来源:way_testlife
Linux Command Line and Shell Scripting Bible__第10章
第10章 更多结构化命令
-----------for-----------
for var in list
do
commands
done
内部字段分隔符IFS(internal field separator)
bash shell默认将 空格、制表符、换行符 看作字段分隔符。
如果想将IFS的值更改为只识别换行符,需要这样做:IFS=$'\n'
警告:当使用较长的脚步时,可能在一个位置更改了IFS的值,但忘记了该值,并在脚步的其他地方假设为默认值。一个安全的做法是,在更改原始IFS值之前将它保存起来,当需要运用时即可恢复。
可用如下代码:
IFS.OLD=$IFS
IFS=$'\n'
<use the new IFS value in code>
IFS=$IFS.OLD
如果想指定多个IFS字符,只需要将它们在赋值行中串连起来即可。
IFS=$'\n':;"
可以使用for命令自动迭代文件的目录。
bash shell也支持C式的for循环:
for (( variable assignment; condition; iteration process ))
有几项不遵循标准的bash shell的for方法:
变量的赋值可以包含空格
条件中的变量不以美元符号做前缀
迭代处理式不使用expr命令格式
C式的for命令也允许使用多个变量迭代。循环分别处理每个变量,允许为每个变量定义不同的迭代过程。虽然可以使用多个变量,但只可以在for循环中定义一个条件。
-------------while----------------
while test command
do
other command
done
-------------until----------------
until test commands
do
other commands
done
break n:n表明要跳出的循环级别(默认情况下n是1)。
continue n: n表明要跳出的循环级别(默认情况下n是1)。