文字列として渡されたコマンドを実行し、$?の戻りコードを確認し、ゼロ以外を返す場合は、2番目の引数で指定されたエラーを出力して終了するという単純なbash関数があります。
関数は次のとおりです。
function checkcommand()
{
$1
if [ "$?" -ne "0" ]; then
echo "$2"
exit 1
fi
}
この機能はうまく機能します。動作する例を次に示します。
checkcommand "git clone /home/git/framework.git $gitreponame" "git clone failed!
"
関数を使用してコミットの成功を検証したい場合に問題が発生します。
checkcommand "git commit -m\"remove migrations from release-$todaysrelease-pr
ep\"" "Commit for migrations removal from release-$todaysrelease-prep failed!"
私は(写真のように)baclslash引用符、一重引用符、一重引用符と二重引用符のさまざまな組み合わせなどを試しました。
手がかりをありがとう!