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

Linux?shell之for?in的使用及說(shuō)明

 更新時(shí)間:2025年09月05日 09:16:24   作者:wzj_110  
這篇文章主要介紹了Linux?shell之for?in的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、語(yǔ)法

for 變量名  in  列表
  do
     程序段(command)
  done

注意1:是變量名不是$變量!

注意2:列表可以做文章!

二、應(yīng)用

第一類(lèi):數(shù)字性循環(huán)-->seq在in后面的應(yīng)用

#!/bin/bash  
#也是產(chǎn)生等差數(shù)列-->默認(rèn)是1
for i in $(seq 1 10)  #產(chǎn)生的是一個(gè)字符串,默認(rèn)IFS是以空格隔開(kāi)!
  do   
    echo $(expr $i \* 3 + 1);  #主要是復(fù)習(xí):expr乘法的特殊用法!-->空格隔開(kāi)
  done   

補(bǔ)充:產(chǎn)生[1,10]的自然數(shù)-->{}在in后面的應(yīng)用

total=0 #全局變量
for i in {1..100} #".."表示連續(xù),默認(rèn)也是IFS為空格隔開(kāi)
  do
    ((total+=i))
  done
echo -e "total is:${total}"

#多行注釋
<<COMMENR
for i in mysql_{0,1,4,12}sql #多個(gè)文件
  do 
    echo $i
    samtools view -c $i 
  done
COMMENT

第二類(lèi):字符性循環(huán)

最原始的

#!/bin/bash
#使用列表for循環(huán)顯示周一到周日對(duì)應(yīng)的英文-->學(xué)習(xí)日期的英文
for day in Monday Tuesday Wednesday Thursday Friday Saturday Sunday 
  do
      echo "$day"
  done

變量的類(lèi)型

#!/bin/bash  
list="Linux Java C++ Python"  
for i in $list  
  do  
    echo -e "Language is ${i}"   
  done  

cat在in后面的應(yīng)用-->逐行讀取文件的內(nèi)容(默認(rèn)是IFS),所以不是逐行打印!

#!/bin/bash
for i in $(cat 日志顏色.sh) #注意:pwd當(dāng)前目錄下的文件
 do 
   echo $i
 done

思考:如果想逐行原樣輸出!

#!/bin/bash
# reading content from a file
file="日志文件.sh"
#將這個(gè)語(yǔ)句加入到腳本中,告訴bash shell在數(shù)據(jù)值中忽略空格和制表,使其只能識(shí)別換行符!
IFS=$'\n'
for std in $(cat $file)
  do
     echo "$std"
  done

說(shuō)明:IFS的一些說(shuō)明!

  • bash shell會(huì)將下列字符當(dāng)作字段分隔符:空格、制表符、換行符
  • 說(shuō)明:如果在shell在數(shù)據(jù)中看到這些字符中的任意一個(gè),它就會(huì)假定這表明了列表中一個(gè)新數(shù)據(jù)字段的開(kāi)始!

參考的最佳安全實(shí)踐:在改變IFS之前保存原來(lái)的IFS值,之后再恢復(fù)它。

保證了:在腳本的后續(xù)操作中使用的是IFS的默認(rèn)值

實(shí)現(xiàn)

IFS.OLD=$IFS          #默認(rèn)的IFS的數(shù)值-->也是環(huán)境變量!
IFS=$'\n'             #自定義的IFS數(shù)值
<在代碼中使用新的IFS值> #待使用自定義IFS的部分!
IFS=$IFS.OLD          #恢復(fù)默認(rèn)的IFS

第三類(lèi):路徑查找

lsin后面的命令是-->讀取當(dāng)前pwd下的文件(廣義上)!

#!/bin/bash  
for i in `ls`;  #ls可以結(jié)合統(tǒng)配符應(yīng)用!
  do   
    echo $i is file name\! ;  #注意:\的應(yīng)用!
  done   

 用通配符讀取目錄(無(wú)命令)

for file in ~/*;  #一級(jí)目錄下的內(nèi)容-->并不遞歸顯示! 
  do  
     echo $file is file path \! ;  #${file}代表的是文件的全路徑
  done 

通過(guò)腳本傳參

#!/bin/bash
#回憶1:統(tǒng)計(jì)腳本參數(shù)的個(gè)數(shù)
echo "argument number are $#"!
#回憶2:參數(shù)的內(nèi)容-->此處可以換成$@來(lái)測(cè)試!
echo "the input is $*"
#循環(huán)執(zhí)行
for argument in "$*";
  do
      echo "$argument "
  done

IFS:內(nèi)部字段分隔符

需求如下

#遍歷一個(gè)文件中用冒號(hào)分隔的值:-->特殊文件-->/etc/passwd文件等!
IFS=:
#如果要指定多個(gè)IFS字符,只要將它們?cè)谫x值行串起來(lái)就行。
IFS=$'\n':;"

總結(jié)

#(1)從變量讀取列表
# 將一系列的值都集中存儲(chǔ)在一個(gè)變量中,然后需要遍歷變量中的整個(gè)列表

#(2)從命令讀取值
#有兩種方式可以將命令輸出賦值給變量:
# (1)反引號(hào)字符(`)
# (2)$()格式 

補(bǔ)充:在列表構(gòu)成上分多種情景,如數(shù)字列表、字符串列表、命令列表、腳本傳參列表等!

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • shell grep 查找進(jìn)程的小技巧

    shell grep 查找進(jìn)程的小技巧

    大部分人在寫(xiě)Shell 過(guò)濾進(jìn)程的時(shí)候 都會(huì)使用 grep 在 ps aux 的輸出結(jié)果中查找指定的進(jìn)程,但此時(shí)也會(huì)把 grep 進(jìn)程也顯示出來(lái)
    2013-01-01
  • shell通過(guò)遍歷輸出兩個(gè)日期范圍內(nèi)所有日期的方法

    shell通過(guò)遍歷輸出兩個(gè)日期范圍內(nèi)所有日期的方法

    這篇文章主要介紹了在shell通過(guò)遍歷輸出兩個(gè)日期范圍內(nèi)所有日期的方法,文中給出了詳細(xì)的示例代碼以及實(shí)現(xiàn)思路流程,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • Ansible?Ad-hoc命令執(zhí)行模塊實(shí)戰(zhàn)教程

    Ansible?Ad-hoc命令執(zhí)行模塊實(shí)戰(zhàn)教程

    Ad-hoc是Ansible下臨時(shí)執(zhí)行的一條命令,對(duì)于復(fù)雜的命令會(huì)使用playbook。Ad-hoc的執(zhí)行依賴(lài)于模塊,ansible官方提供了大量的模塊,這篇文章主要介紹了Ansible?Ad-hoc命令執(zhí)行模塊?,需要的朋友可以參考下
    2024-02-02
  • 關(guān)于ssh連不上問(wèn)題的解決方法(必看)

    關(guān)于ssh連不上問(wèn)題的解決方法(必看)

    下面小編就為大家?guī)?lái)一篇關(guān)于ssh連不上問(wèn)題的解決方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • linux?shell文件轉(zhuǎn)碼iconv命令的使用

    linux?shell文件轉(zhuǎn)碼iconv命令的使用

    本文主要介紹了linux?shell文件轉(zhuǎn)碼iconv命令的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Linux 壓縮某個(gè)文件夾的實(shí)現(xiàn)方法

    Linux 壓縮某個(gè)文件夾的實(shí)現(xiàn)方法

    這篇文章主要介紹了Linux 壓縮某個(gè)文件夾的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • Shell腳本中實(shí)現(xiàn)切換用戶(hù)并執(zhí)行命令操作

    Shell腳本中實(shí)現(xiàn)切換用戶(hù)并執(zhí)行命令操作

    這篇文章主要介紹了Shell腳本中實(shí)現(xiàn)切換用戶(hù)并執(zhí)行命令操作,看了示例代碼就秒懂了,原來(lái)如此簡(jiǎn)單,需要的朋友可以參考下
    2014-12-12
  • Shell腳本實(shí)現(xiàn)IP地址合法性判斷

    Shell腳本實(shí)現(xiàn)IP地址合法性判斷

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)IP地址合法性判斷,本文給出了實(shí)現(xiàn)代碼和運(yùn)行代碼,需要的朋友可以參考下
    2014-10-10
  • 獲取磁盤(pán)IO與系統(tǒng)負(fù)載Load的shell腳本

    獲取磁盤(pán)IO與系統(tǒng)負(fù)載Load的shell腳本

    本節(jié)介紹的幾段shell腳本,可以用于提取磁盤(pán)的I/O信息,系統(tǒng)負(fù)載Load信息等
    2013-08-08
  • Bash腳本中Sleep命令的使用

    Bash腳本中Sleep命令的使用

    本文主要介紹了Bash腳本中Sleep命令的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

那坡县| 汽车| 吉首市| 东宁县| 河曲县| 靖西县| 财经| 桃园市| 庄河市| 米脂县| 赫章县| 阳泉市| 景宁| 西华县| 莱阳市| 威海市| 怀宁县| 泰顺县| 平阳县| 新源县| 邯郸县| 黄石市| 德化县| 安岳县| 五常市| 中西区| 合水县| 莱州市| 平利县| 花莲市| 雷波县| 磴口县| 濮阳县| 会宁县| 彝良县| 郎溪县| 霍邱县| 桦川县| 井陉县| 遂宁市| 江达县|