1
私はタスクラッパーとして機能し、タスクが失敗した場合にユーザーに電子メールを送るスクリプトを持っています。Bash execラッパースクリプト - 引数として渡される複数のコマンド
タスクは、スクリプトの引数として渡されます。複数のコマンドを実行する必要があるときに問題が発生するのは、タスクargが"echo this; echo that"
のときに次の行がスクリプトに渡されたとすると、が出力されます。エコーその。
それでは、入力コマンド文字列をループせずに複数のコマンドを実行する最も簡単な方法は何ですか?チャー
簡単な例:
FIRST=$1
TASK=$*
echo run
echo "emailing $FIRST"
$TASK
echo done
と我々は./wrapper.sh "[email protected]" "echo this; echo that"
提案を使用することになり、このスクリプトを実行するには?
感謝を - コマンド文字列のいずれかのコマンドが失敗した場合、戻り値を取得するにはとにかくがあります。 "echo this; dsddsdsd; echo that"と言っても、中間のコマンドは失敗します(まだ見つかりません)$?エコーが成功すると依然として0になります。ですから、問題はshを-eスイッチを使って失敗すると停止することができますが、各コマンドを実行してゼロ以外のエラーを返すことができます(ショットに値するとは思えません)。 – NightWolf
Hrm、私はそれを行うための簡単なメカニズムを考えることはできません。複数のコマンドを複数の引数として受け入れるようにスクリプトを変更することはできますか?例えば'wrapper.sh alert @ hostname"これをエコー "echo?" – sarnold