Bash exec包装器脚本 - 作为参数传入的多个命令

时间:2012-03-26 00:25:39

标签: bash sh

基本上我有一个脚本充当任务包装器,如果任务失败,则通过电子邮件发送给用户。

任务作为参数传递给脚本。当我们需要运行多个命令时,问题就出现了,因为任务arg "echo this; echo that"将输出这个,所以将以下行传递给脚本;回声

所以问题是什么是运行多个命令的最简单方法,而不必循环输入命令字符串并拆分';'炭?

简单示例:

FIRST=$1
TASK=$*
echo run
echo "emailing $FIRST"
$TASK
echo done

要运行此脚本,我们将使用./wrapper.sh "alert@somethingbadhappened.com" "echo this; echo that"

建议?

1 个答案:

答案 0 :(得分:5)

如果您通过$TASK执行字符串sh -c,则可能不需要再做任何工作了:

$ sh -c "echo this ; echo that"
this
that
$