BASH执行多个以逗号分隔的命令

时间:2015-01-30 13:59:51

标签: 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; 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...

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您可以信任,您可以在远程文件中没有恶意命令时使用此功能:

while read -r line; do
   bash -c "$line"
done < <(curl -sL "http://remote.com/api/$1")