BASH执行多个由逗号分隔的命令
我正在尝试逐行执行远程文件:BASH执行多个由逗号分隔的命令,bash,while-loop,sleep,Bash,While Loop,Sleep,我正在尝试逐行执行远程文件: curl -sL 'http://remote.com/api/'$1'' | while read NAME do $($NAME) & done 远程文件如下所示: sleep 10; wget -O/opt/store/11.xml http://remote.com/api/11 sleep 10; wget -O/opt/store/12.xml http://remote.com/api/12 sleep 10; wge
curl -sL 'http://remote.com/api/'$1'' | while read NAME
do
$($NAME) &
done
远程文件如下所示:
sleep 10; wget -O/opt/store/11.xml http://remote.com/api/11
sleep 10; wget -O/opt/store/12.xml http://remote.com/api/12
sleep 10; wget -O/opt/store/13.xml http://remote.com/api/13
sleep 10; wget -O/opt/store/14.xml http://remote.com/api/14
我想执行每一行,但我得到一个错误,如:
Try `sleep --help' for more information.
sleep: invalid option -- 'O'
因此,睡眠是获得parm-O.
有什么想法吗
谢谢 如果您可以相信远程文件中不会有恶意命令,则可以使用此命令:
while read -r line; do
bash -c "$line"
done < <(curl -sL "http://remote.com/api/$1")
读取-r行时;做
bash-c“$line”
完成bash正确地说,这样做可以避免这里的循环,除非OP想在每行之后添加一些日志记录等。