bash:转义从文件中读取的多个参数

时间:2015-07-29 07:46:11

标签: bash escaping

我有一个包含网址的文件,每行一个。这些URL可能包含空格或其他危险元素。我想用这些网址调用一个程序,所有这些都是一次性的。

urls.txt

ptoto://domain/maybe with spaces & stuff 1
ptoto://domain/maybe with spaces & stuff 2
ptoto://domain/maybe with spaces & stuff 3

我希望将这样的转换文件调用为:

myCommand "ptoto://domain/maybe with spaces & stuff 1" "ptoto://domain/maybe with spaces & stuff 2" "ptoto://domain/maybe with spaces & stuff 3"

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

while read -r; do
    args+=("$REPLY")
done < textfile.txt
myCommand "${args[@]}"

此处,$REPLY是默认变量,其中read在没有提示变量名时存储其结果。我们使用一个数组来存储每一行​​,双引号强制保留空格和数字。其他人物。

"${args[@]}"显示数组的每个元素