2016-08-07 56 views
1

我正在編寫一個bash腳本。我堅持的待定點是如何一次接受來自用戶的多個輸入。在bash腳本中接受多行輸入

具體而言,當腳本要求輸入輸入時,用戶必須能夠輸入多個域名。

例,腳本運行部分:

Enter the domain names : 

和用戶必須能夠通過在線或者通過手動輸入他們每個人或他/她就必須從某處複製的域名列表中輸入域名線並能夠將其粘貼在腳本輸入中,如下所示:

domain1.com 
domain2.com 
domain3.com 
domain4.com 

是否有可能?

回答

3

是的,你可以:使用readarray

printf "Enter the domain names: " 
readarray -t arr 
# Do something... 
declare -p arr 

以上只是文件什麼的bash現在看到的陣列中的最後一行。

用戶可以鍵入或複製並粘貼數組名稱。當用戶完成時,他在行的開頭鍵入Ctrl-D

例子:

$ bash script 
Enter the domain names: domain1.com 
domain2.com 
domain3.com 
domain4.com 
declare -a arr='([0]="domain1.com" [1]="domain2.com" [2]="domain3.com" [3]="domain4.com")' 
+0

謝謝你這麼多:) – Jondi

2

使用loop

#!/bin/bash 

arrDomains=() 
echo "Enter the domain names :" 

while read domain 
do 
    arrDomains+=($domain) 
    # do processing with each domain 
done 

echo "Domain List : ${arrDomains[@]}" 

一旦你輸入的所有域名按ctrl + D結束輸入。

+0

太感謝了:) – Jondi