for var in con1 con2 con3 ... do 程序段 done
1,获取linux的所有用户
#!/bin/bash
# show all users
users=$(cut -d ":" -f 1 /etc/passwd)
for username in $users
do
echo "username:"${username}
done
2,获取ping 10个连续地址的结果
#!/bin/bash
ip="192.168.146."
n=$(seq 1 10)
for address in $n
do
ip_address=${ip}${address}
ping -c 1 -w 1 $ip_address >>./ping_result && result=0 || result=1
if [ "$result" == 0 ];
then
echo "ping "${ip_address}" success"
else
echo "ping "${ip_address}" error"
fi
done
3,检查一个目录下的所有文件的rwx权限
#!/bin/bash
#show dir file rwx
read -p "please input a dir:" dir
if [ "$dir" == "" -o ! -d "$dir" ];
then
echo ${dir}" is empty or not a dir"
exit 0
fi
list=$(ls "$dir")
for name in $list
do
info=""
[ -r $name ] && info="$name can read," || info="$name can not read,"
[ -w $name ] && info=${info}"can write," || info=${info}" can not write,"
[ -x $name ] && info=${info}"can x " || info=${info}"can not x"
echo $info
done
另一种for的写法
for (( 初始值; 限制值; 运行步阶 )) do 程序段 done |
#!/bin/bash
read -p "input a number,cout the number for 1+2+input number:" number
sum=0
for ((i=1;i<=$number;i++))
do
sum=$(($sum+$i))
done
echo "1+2+..+$number="${sum}