最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell編程中for循環(huán)語句的實現(xiàn)過程及案例

 更新時間:2022年04月11日 08:33:00   作者:Steve?lu  
Bash?Shell中主要提供了三種循環(huán)方式:for、while和until,下面這篇文章主要給大家介紹了關(guān)于shell編程中for循環(huán)語句的實現(xiàn)過程及案例,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

本篇是shell編程for循環(huán)的實現(xiàn)過程以及一些案例

什么是for循環(huán)

讀取不同的變量值,用來逐個執(zhí)行同一組命令

for 變量名 in 取值列表
do
    命令序列
done
#用變量名去取值,然后挨個執(zhí)行命令,其實就是一個遍歷的過程

循環(huán)體中三種專業(yè)的話術(shù):遍歷、迭代、遞歸

[root@bogon ~]# for i in {1..10}
> do
> echo $i
> done
1
...
10
[root@bogon ~]# for i in $(seq 1 10); do echo $i; done
1
...
10
#分號可以使交互式的命令在一行執(zhí)行
[root@bogon ~]# for ((i=1;i<=10;i++)); do echo $i; done
1
...
10
#類似于java、c語言

示例1:批量添加用戶

用戶名存放在users.txt文件中,每行一個初始密碼均設(shè)為000000

[root@bogon sh]# vim addusers.sh
#!/bin/bash
#demo add users
 
for USER in $(cat /data/users.txt)
do
        useradd $USER
        echo "000000" |passwd --stdin $USER
done

示例2:根據(jù)IP地址檢查主機狀態(tài)

IP地址存放在ipadds.txt文件中,每行一個使用ping命令檢測各主機的連通性

[root@bogon sh]# vim testping.txt 
#!/bin/bash
#demo test ping
 
for host in $(cat /data/ip.txt)
do
        ping -c 3 -i 0.5 -w 2 $host &> /dev/null
        if [ $? -eq 0]
        then
                echo "$host is online"
        else
                echo "$host is offline"
        fi
done

[root@bogon sh]# vim testping.txt 
#!/bin/bash
#demo test ping 192.168.109.0/24
 
for host in {1..254}
do
        ping -c 3 -i 0.5 -w 2 192.168.109.$host &> /dev/null
        if [ $? -eq 0]
        then
                echo "$host is online"
        else
                echo "$host is offline"
        fi
done

示例3:自動生成一個8位隨機密碼 取值范圍大小寫字母和數(shù)字

字符串分片

i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
   0                                                            61
 
${i:n:m}
#i是變量名,n是開始取值的下標,下標從0開始,m是取值長度
${#變量名}
#取字符串長度
 
 
echo ${i:3:3}
#取值456
echo ${i:7:1}
#取值8
 
變量1+=變量2
#字符串追加

生成隨機數(shù)

echo $[$RANDOM % 62]
#生成0-61的隨機數(shù)
 
echo $[$RANDOM % ${#i}]
#生成該變量名長度以內(nèi)的隨機數(shù)
 
num=$($[$RANDOM % ${#i}])
for i in {1..8}
do
    echo ${i:$num:1}
done
#從i變量值中取隨機數(shù),每次取一個,取8次

示例代碼

[root@localhost sh]# vim random.sh
#!/bin/bash
#隨機生成8位隨機密碼
 
#定義密碼取值范圍
String="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
#循環(huán)8次
for i in {1..8}
do
        #每次循環(huán)隨機獲取0到字符串長度-1的下標值
        num=$[RANDOM % ${#String}]
        #進行字符串截取
        var=${String:num:1}
        #每次追加生成密碼
        passwd+=$var
done
echo "本次生成的隨機密碼為:$passwd"

 

編寫腳本應(yīng)該注意的事項:

  1. 開頭指定使用什么shell,例如:bash,ksh,csh等
  2. 腳本功能描述,使用方法,作者,版本,日期等
  3. 變量名,函數(shù)名要有實際意義,函數(shù)名以動名詞形式,第二個單詞首字母要大寫。例如:updateConfig()
  4. 縮進統(tǒng)一用4個空格,不用TAB
  5. 取變量值使用大括號,如${varname}
  6. 刪除文件時,如果路徑有變量的,要判斷變量有值,如rm -f ${abc}/* 如果變量abc沒有值,則會把根目錄下的文件刪除
  7. 腳本中盡量不要使用cd變換目錄
  8. 函數(shù)中也要有功能描述,使用依法,版本,日期等
  9. 函數(shù)的功能要單一,不要太復(fù)雜
  10. $()比` `更好
  11. 盡量不要使用多層if語句,而應(yīng)該以case語句替代
  12. 如果需要執(zhí)行確定次數(shù)的循環(huán),應(yīng)該用for語句替代while語句
  13. 輸入的參數(shù)要有正確性判斷
  14. 多加注釋,方便自己或他人閱讀。

總結(jié)

總的來說for循環(huán)還是比較簡單的只要理解他的固定格式就行

for 變量名 in 取值列表
do
    命令序列
done
#用變量名去取值,然后挨個執(zhí)行命令,其實就是一個遍歷的過程

到此這篇關(guān)于shell編程中for循環(huán)語句實現(xiàn)的文章就介紹到這了,更多相關(guān)shell for循環(huán)語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

册亨县| 天等县| 克东县| 湘潭市| 阿拉善左旗| 深州市| 府谷县| 远安县| 田林县| 阜城县| 理塘县| 馆陶县| 邢台县| 巴塘县| 巴彦县| 巫山县| 辽宁省| 江源县| 渝北区| 和田市| 淳安县| 旬邑县| 五常市| 临沭县| 隆昌县| 迁西县| 达拉特旗| 郸城县| 彭山县| 洛隆县| 治多县| 桦川县| 珠海市| 罗山县| 余江县| 广东省| 无棣县| 景德镇市| 达州市| 武功县| 沐川县|