欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux?shell之for?in的使用及說明

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

一、語法

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

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

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

二、應(yīng)用

第一類:數(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是以空格隔開!
  do   
    echo $(expr $i \* 3 + 1);  #主要是復(fù)習(xí):expr乘法的特殊用法!-->空格隔開
  done   

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

total=0 #全局變量
for i in {1..100} #".."表示連續(xù),默認(rèn)也是IFS為空格隔開
  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

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

最原始的

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

變量的類型

#!/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è)語句加入到腳本中,告訴bash shell在數(shù)據(jù)值中忽略空格和制表,使其只能識別換行符!
IFS=$'\n'
for std in $(cat $file)
  do
     echo "$std"
  done

說明:IFS的一些說明!

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

參考的最佳安全實(shí)踐:在改變IFS之前保存原來的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

第三類:路徑查找

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   

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

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

通過腳本傳參

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

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

需求如下

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

總結(jié)

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

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

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

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

相關(guān)文章

  • 對用戶輸入的判斷的shell實(shí)現(xiàn)代碼

    對用戶輸入的判斷的shell實(shí)現(xiàn)代碼

    今天的案例是將 對用戶輸入的判斷的shell腳本,需要的朋友可以參考下
    2016-08-08
  • Shell 命令啟動(dòng)Docker Container的實(shí)現(xiàn)

    Shell 命令啟動(dòng)Docker Container的實(shí)現(xiàn)

    本文主要介紹了Shell 命令啟動(dòng)Docker Container的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 利用shell命令統(tǒng)計(jì)日志的方法詳解

    利用shell命令統(tǒng)計(jì)日志的方法詳解

    這篇文章主要給大家介紹了關(guān)于利用shell命令統(tǒng)計(jì)日志的方法,通過這個(gè)命令將會對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 使用Bash Shell對目錄中的文件實(shí)現(xiàn)遞歸式拷貝

    使用Bash Shell對目錄中的文件實(shí)現(xiàn)遞歸式拷貝

    這篇文章主要介紹了使用Bash Shell對目錄中的文件實(shí)現(xiàn)遞歸式拷貝,適用于Ubuntu等Debian系的Linux系統(tǒng),需要的朋友可以參考下
    2015-07-07
  • shell 中數(shù)學(xué)計(jì)算總結(jié)

    shell 中數(shù)學(xué)計(jì)算總結(jié)

    shell中的賦值和操作默認(rèn)都是字符串處理,在此記下shell中進(jìn)行數(shù)學(xué)運(yùn)算的幾個(gè)特殊方法,以后用到的時(shí)候可以來看,呵呵
    2012-09-09
  • 關(guān)于Linux下動(dòng)態(tài)查看實(shí)時(shí)日志的命令

    關(guān)于Linux下動(dòng)態(tài)查看實(shí)時(shí)日志的命令

    這篇文章主要介紹了Linux下動(dòng)態(tài)查看實(shí)時(shí)日志的命令,在Linux中實(shí)時(shí)顯示文件內(nèi)容的常用命令是tail命令,tail命令是實(shí)時(shí)顯示日志文件的最常用解決方案,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 備份shell腳本實(shí)例代碼

    備份shell腳本實(shí)例代碼

    備份shell腳本一例,有需要的朋友可以參考下
    2013-02-02
  • shell腳本引用外部變量的兩種方法

    shell腳本引用外部變量的兩種方法

    本文主要介紹了shell腳本引用外部變量的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Linux?screen命令使用示例

    Linux?screen命令使用示例

    Screen是一個(gè)全屏窗口管理器,它在多個(gè)進(jìn)程(通常是交互式shell)之間多路傳輸物理終端。每個(gè)虛擬終端提供DEC?VT100終端的功能,以及ANSI?X3的幾個(gè)控制功能,本文給大家分享Linux?screen命令使用示例,感興趣的朋友一起看看吧
    2023-03-03
  • Shell字符串截取的實(shí)現(xiàn)方法(非常詳細(xì))

    Shell字符串截取的實(shí)現(xiàn)方法(非常詳細(xì))

    這篇文章主要介紹了Shell字符串截取的實(shí)現(xiàn)方法(非常詳細(xì)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論