在每个迭代中linux命令大全,变量VAR会包含列表中当前值。
在do和done之间可以是一条或多条命令。
list列表中使用中的规则与特殊情况:
1、单引号的特殊处理,使用转义字符(反斜线)来将单引号转义
使用双引号来定义用到的单引号的值
for TEST in Idon\'t know if "this'll" work
echo "word:$TEST"
2、list可以定义成变量
LIST1='Alabama Alaska Arizona Shanghai Beijing'
LIST2=$LIST1" Shenzhen"
for STAT in $LIST2
echo "Have you ever visited $LIST2"
3、list参数可以定义成命令,即用反引号来执行任何能产生输出的命令,然后在for命令中使用该命令的输出;
FILE=/home/test/states
for STATE in`cat $FILE `
echo "Visit beautiful $STAT"
/home/test/states 文件内容:
4、list参数中可以用通配符,如用for命令来自动遍历满是文件的目录
for FILE in /home/test/*
echo "$FILE is a directory"
elif [ -f "$FILE" ]
echo "$FILE is a file"
在linux中文件名包含目录名和文件名是合法的,要容纳这种值,所以用双引号""将$FILE括起来。
4、bash用默认用空格、制表符来划分list列表中的每个值。如果单独的数据中有空格,那么也必须用双引号括起这些值。
for TEST in China Shanghai"New York" "New Mexico"
echo "Not going to $test"
5、在shell脚本中临时更改IFS环境变量的值来限制一下被bash shell当作字段分隔符的字符。
IFSOLD=$IFS#保留IFS变量的默认值
IFS=$'\n'#为IFS赋新值linux命令大全,使bash shell只能识别换行符。
使用冒号作为分隔符:IFS=:
使用换行符、冒号、分号和双引号作为字段分隔符IFS=$'\n:;'"
shell 代码部分,例如for命令等
IFS=$IFSOLD #恢复默认值
C语言风格的for命令 即for (( ))
格式:
for (( variable assignment; condition; iteration process ))
commands
variable assignment :变量赋值
condition:条件
iteration process:迭代过程
eg:
for (( i=1;i<=10;i++ ))
echo "the next number is $i"
C语言风格的for命令允许定义多个变量
for (( a=1,b=10;a<=10;a++,b-- ))