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[@]}"
显示数组的每个元素
我有一个包含 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[@]}"
显示数组的每个元素