shell腳本中,for基於列表進行循環的實現方法


需求描述:

  在寫腳本中需要這么個需求,需要對一個列表中的值進行循環

  比如,列表中的值mysqld,zookeeper,hbase

  簡單來說,for基於列表值的循環。

腳本測試過程

1.測試腳本

#!/bin/bash

for i in {mysql,zookeeper,hbase}
  do
   echo $i
done

 或者

#!/bin/bash

for i in mysql zookeeper hbase
  do
   echo $i
done

 2.腳本執行結果

[root@redhat6 ~]# ./ts.sh
mysql
zookeeper
hbase
說明:for循環中{}大括號中,列出了所有需要循環的值,每個值之間用逗號隔開。

3.大括號中如果使用空格隔開,則是下面的執行結果

[root@redhat6 ~]# ./ts.sh
{mysql
zookeeper
hbase}
4.將所有的需要循環的列表的值賦給一個變量,然后通過for循環展示

ps_name='mysql zookeeper hbase'

for i in $ps_name #此處就不使用大括號了。 do
   echo $i
done

 5.再次執行修改的腳本

[root@redhat6 ~]# ./ts.sh
mysql
zookeeper
hbase

備注:執行也能達到同樣的效果,不過此時,in后面不需要使用大括號了,同時將多個值賦給一個變量的時候,中間用空格分開。

6.如果在in后面仍舊使用大括號,執行結果

#!/bin/bash

ps_name='mysql zookeeper hbase'

for i in {$ps_name}
  do
   echo $i
done

 [root@redhat6 ~]# ./ts.sh
{mysql     #執行結果多輸出了{
zookeeper
hbase}  #執行結果多輸出}
備注:所以,使用這種方式時,不要使用大括號。

小結

  for列表即in后面,本該就是多個值之間用空格隔開這種情況,如果要用大括號

  那么,各個值被括起來,中間用逗號隔開,in后面使用引用變量,不要使用大括號。

 

文檔創建時間:2018年3月9日10:52:15


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM