Jon*_*ndi 4 unix linux bash awk sed
我正在编写 bash 脚本。我遇到的问题是如何一次接受来自用户的多个输入。
具体来说,当脚本要求输入时,用户必须能够输入多个域名。
示例,脚本运行部分:
Enter the domain names :
Run Code Online (Sandbox Code Playgroud)
并且用户必须能够通过手动输入每个域名来逐行输入域名,或者他/她只需从某处复制域名列表并能够将其粘贴到脚本输入中,如下所示:
domain1.com
domain2.com
domain3.com
domain4.com
Run Code Online (Sandbox Code Playgroud)
是否可以?。
使用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[@]}"
Run Code Online (Sandbox Code Playgroud)
输入所有域名后,按ctrl + D结束输入。
是的,您可以:使用readarray:
printf "Enter the domain names: "
readarray -t arr
# Do something...
declare -p arr
Run Code Online (Sandbox Code Playgroud)
上面的最后一行只记录了 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")'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6151 次 |
| 最近记录: |