基本上我有一个脚本充当任务包装器,如果任务失败,则通过电子邮件发送给用户。
任务作为参数传递给脚本。当我们需要运行多个命令时,问题就出现了,因为任务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"
建议?
答案 0 :(得分:5)
如果您通过$TASK
执行字符串sh -c
,则可能不需要再做任何工作了:
$ sh -c "echo this ; echo that"
this
that
$