簡體   English   中英

從文本文件加載列表到 Bash 腳本

[英]Load List From Text File To Bash Script

我有一個.txt文件,其中包含

abc.com
google.com
....
....
yahoo.com

我有興趣將它作為列表加載到 bash 腳本中(即Domain_List=( "abc.com" "google.com" .... "yahoo.com") )。 有可能嗎?

附加信息,一旦獲得列表,它就會在for循環和if語句中使用。

 for i in "${Domain_list[@]}
 do
     if grep -q "${Domain_list[counter]}" domains.log
   ....
   ....
     fi
 ....
     let counter=counter+1
 done

謝謝,

更新:我已將格式更改為 Domain_list=( "google.com .... "yahoo.com" ),並且使用source Doamin.txt允許我使用Domain_list作為 bash 腳本中的列表。

#!/bin/bash

counter=0
source domain.txt
for i in "${domain_list[@]}"
do
   echo "${domain_list[counter]}"
   let counter=counter+1
done
echo "$counter"

假設您的數據文件名為 web.txt。 使用命令替換 (backtics) 和 cat,可以構建數組。 Pl。 看下面的代碼,

myarray=(`cat web.txt`)
noofelements=${#myarray[*]}
#now traverse the array
counter=0
while [ $counter -lt $noofelements ]
do
    echo " Element $counter is  ${myarray[$counter]}"
    counter=$(( $counter + 1 ))

done
Domain_list=()
while read addr
do
    Domain_list+=($addr)
done < addresses.txt

這應該將文本文件的每一行存儲到數組中。

我使用了 source 命令,它工作正常。

 #!/bin/bash

 counter=0
 source domain.txt
 for i in "${domain_list[@]}"
 do
    echo "${domain_list[counter]}"
    let counter=counter+1
 done
 echo "$counter"

如果我們從文件中獲取列表,則不需要計數器。 您可以簡單地遍歷列表並回顯該值。

#!/bin/bash

source domain.txt
for i in ${domain_list[@]}
do
   echo $i
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM