我有一个简单的 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 引用、单引号、单引号和双引号的各种组合等。
感谢您提供任何线索!