Bash - 如何将数组放入变量值中?

Bash - 如何将数组放入变量值中?

我有一个 web.txt 文件,其中包含:

youtube
facebook
google

我的 sh 文件包含:

readarray web < web.txt
url = www.website.com

我使用过的命令:

readarray web < web.txt
url = www."$web".com

ping url

预期输出:

ping youtube.com
ping facebook.com
ping google.com

正确的语法应该是什么?谢谢!

答案1

如果你真的想要打印显示的预期输出,然后

$ readarray -t web < web.txt
$ printf 'ping www.%s.com\n' "${web[@]}"
ping www.youtube.com
ping www.facebook.com
ping www.google.com

但是,如果您想实际 ping 主机,则可能xargs更简单,例如

xargs -a web.txt -I{} ping -c1 "www.{}.com"

答案2

如果您想在从文件中读取的字符串前面www.和后面添加并在结果字符串上使用:.comweb.txtping

while IFS= read -r company; do
    ping "www.$company.com"
done <web.txt

相关内容