4.2 for语句
格式:for name [ [ in [ word ... ] ] ; ] do list ; done
for 变量名 in 取值列表; do
命令
done
#!/bin/bash
for i in {1..3}; do
echo $i
done
# bash test.sh
1
2
3
for 的语法也可以这么写:
#!/bin/bash
for i in "$@"; { # $@是将位置参数作为单个来处理
echo $i
}
# bash test.sh 1 2 3
1
2
3
默认 for 循环的取值列表是以空白符分隔,也就是第一章讲系统变量里的$IFS:
#!/bin/bash
for i in 12 34; do
echo $i
done
# bash test.sh
12
34
如果想指定分隔符,可以重新赋值$IFS 变量:
#!/bin/bash
OLD_IFS=$IFS
IFS=":"
for i in $(head -1 /etc/passwd); do
echo $i
done
IFS=$OLD_IFS # 恢复默认值
# bash test.sh
root
x
0
0
root
/root
/bin/bash
for 循环还有一种C 语言风格的语法,常用于计数、打印数字序列:
for (( expr1 ; expr2 ; expr3 )) ; do list ; done
#!/bin/bash
for ((i=1;i<=5;i++)); do # 也可以i-- echo $i done ``` ```java #!/bin/bash for ip in 192.168.1.{1..254}; do if ping -c 1 $ip>/dev/null; then
echo "$ip OK."
else
echo "$ip NO!"
fi
done
#!/bin/bash
URL="www.baidu.com www.sina.com www.jd.com"
for url in $URL; do
HTTP_CODE=$(curl -o /dev/null -s -w %{http_code} http://$url)
if [ $HTTP_CODE -eq 200 -o $HTTP_CODE -eq 301 ]; then
echo "$url OK."
else
echo "$url NO!"
fi
done
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Eternal Night
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果