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

bash: Escape multiple parameters that are read from file

我有一个包含 URL 的文件,每行一个。这些 URL 可能包含空格或其他危险元素。我想用这些 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"

尝试以下操作:

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

这里,$REPLY是默认变量,当没有提示变量名时,read存储它的结果。我们使用一个数组来存储每一行​​,双引号强制保留空格和其他字符。

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