for 命令:
for i in 的各種用法 :
注意:bash shell支持C式for循環
#!/bin/bashj=$1for ((i=1; i<=j; i++))dotouch file$i && echo file $i is okdone
編寫腳本應該注意的事項:
練習1:編寫腳本清空所有arp緩存記錄:
#!/bin/bashfor i in $(arp | tail -n +2|tr -s ' ' |cut -d' ' -f1)do arp -d $idone
練習2:產生十個隨機數:
方法1:
for i in {0..9};do echo $RANDOM;done方法2:
for i in $(seq 10);do echo $RANDOM;done
練習3:倒數五秒:
#!/bin/bashecho "準備倒數5秒:"for i in $(seq 5 -1 1)do echo -en "$i";sleep 1doneecho -e "開始"
方法2:
#!/bin/bashecho "準備倒數5秒:"for i in $(seq 5 -1 1)do echo -en "/b$i";sleep 1doneecho -e "/b開始"
練習4:批量添加用戶:
#!/bin/bashfor i in $(cat /root/users.txt) --》從列表文件讀取文件名do useradd $i echo "123456" | passwd --stdin $i --》通過管道指定密碼字串done
練習:
查找出uid大于10000的用戶,然后刪除,必須使用for循環。
#/bin/bashu_uid=(`cat /etc/passwd | awk -F: '{print $3}'`)u_name=(`cat /etc/passwd | awk -F: '{print $1}'`)for i in `seq ${#u_uid[@] }`do if (( ${u_uid[i-1]} > 10000 )) then userdel -r ${u_name[i-1]}&&echo "${u_name[i-1]} delete ok" fidone方法2:用正則找出大于10000的用戶:
cat /etc/passwd | egrep “1[0-9]{4} | [2-9]{5,}”例子:根據ip地址檢查網絡中存活的主機ip。

break語句:(跳出循環)
continue語句:(跳出本次循環)
練習:使用for循環實現批量添加用戶
#!/bin/bashfor i in $(cat /root/users.txt) --》從列表文件讀取文件名do useradd $i echo “123456”| passwd $i --stdin --》通過管道指定密碼UNAMEdone
(ps:判斷用戶是否存在:id命令)
位置變量
(位置變量的最常用用法:bash 1.sh 變量1 變量2…)
預定義變量:
例:輸出0-9以內的隨機數 主站蜘蛛池模板: 苏尼特右旗| 贵定县| 黔东| 临洮县| 千阳县| 屏山县| 黔西| 琼中| 靖江市| 辽阳县| 迭部县| 社会| 临沧市| 峨眉山市| 无为县| 三门县| 林西县| 大理市| 含山县| 隆子县| 读书| 扎鲁特旗| 赤壁市| 新郑市| 登封市| 封开县| 双峰县| 巴南区| 米脂县| 百色市| 四会市| 巴中市| 庆安县| 彭阳县| 江门市| 平昌县| 枣庄市| 汝阳县| 兴化市| 天祝| 工布江达县|