謝煙客---------Linux之腳本編程---for及while應用
阿新 • • 發佈:2017-09-10
linux
過程式編程
選擇執行
順序執行: if, case
循環執行: for, while, until
for循環列表
for i in LIST; do 循環體 done for i in LIST do 循環體 done
while循環
while CONDITION; do 循環體 done while CONDITION do 循環體 done CONDITION 循環控制條件,每執行一次循環體,需要再次進行判斷 true時,執行一次循環 false時,退出循環
練習:100以內所有正整數之和
練習: 100以內所有偶數和
練習:添加10個用戶
練習:通過ping命令探測172.16.250.1-254範圍內的所有主機的在線狀態.用while循環
練習:打印9x9乘法表
練習:利用RANDOM生成10個隨機數,輸出這10個數字,並顯示其中最大者和最小者
練習:100以內所有正整數之和
#!/bin/bash # declare -i sum=0 for i in {1..100}; do let sum=$sum+1 done echo $i echo "summary: $sum"
#!/bin/bash # declare -i sum=0 declare -i i=1 while [ $i -le 100 ]; do sum=$[$sum+$i] let i++ done echo $i echo "summary: $sum"
練習: 100以內所有偶數和
#!/bin/bash # declare -i sum=0 declare -i i=2 while [ $i -le 100 ]; do sum=$[$sum+$i] let i+=2 done echo $i echo "summary: $sum"
練習:添加10個用戶user1-user10
#!/bin/bash # declare -i i=1 declare -i users=0 while [ $i -le 10 ]; do id user$i &> /dev/null retval=$? [ $retval -ne 0 ] && useradd user$i &> /dev/null [ $? -eq 0 ] && echo "Add user user$i finished" && let users=$users+1 done echo "Add $users users"
練習:通過ping命令探測172.16.250.1-254範圍內的所有主機的在線狀態.用while循環
#!/bin/bash # declare -i IP=‘172.16.250.‘ declare -i i=1 declare -i uphosts=0 declare -i downhosts=0 while [ $i -le 254 ]; do if ping -c 1 -w 1 $IP$i &> /dev/null; then echo "$IP$i is up" let uphosts++ else echo "$IP$i is down" let downhosts++ fi done echo "uphosts: $uphosts" echo "downhosts: $downhosts"
練習:打印9x9乘法表
#!/bin/bash # for i in {1..9}; do for j in $(seq 1 1 $i); do echo -ne "${j}X${i}=$[$i*$j]\t" j=$(($j+1)) done echo done
#!/bin/bash # declare -i i=1 while [ $i -le 9 ]; do declare -i j=1 while [ $j -le $i ]; do echo -ne "${j}X${i}=$[$i*$j]\t" j=$(($j+1)) done echo i=$(expr $i + 1) done
練習:利用RANDOM生成10個隨機數,輸出這10個數字,並顯示其中最大者和最小者
#!/bin/bash # declare -i max= declare -i min= declare -i i=1 declare -i random while [ $i -le 10 ]; do random=$RANDOM echo $random if [ $i -eq 1 ]; then max=$random min=$max fi if [ $i -gt 1 ]; then if [ $random -gt $max ]; then max=$random fi if [ $random -lt $min ]; then min=$random fi fi let i++ done echo "max: $max" echo "min: $min" ========================================== #!/bin/bash # declare -i max= declare -i min= declare -i i=1 declare -i random while [ $i -le 10 ]; do random=$RANDOM echo $random if [ $i -eq 1 ]; then max=$random min=$max fi if [ $random -gt $max ]; then max=$random fi if [ $random -lt $min ]; then min=$random fi let i++ done echo "max: $max" echo "min: $min"
本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1964037
謝煙客---------Linux之腳本編程---for及while應用