2016-08-07 8 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

関連する問題