我有一个在我的脚本中多次使用的if语句:
if [[ $? -ne 0 ]]; then
echo [$JOB_NAME] failed.
exit 1
fi
是否可以定义变量并将此语句赋值给它,然后每次需要ti时调用它?
使用示例:
echo [$JOB_NAME] extracting manifests...
unzip -o ZIP_FILE "*.yml"
# Push the app to CF
cf push -f $MANIFEST_FILE -p ZIP_FILE $NEW_APP
if [[ $? -ne 0 ]]; then
echo [$JOB_NAME] failed.
exit 1
fi
答案 0 :(得分:2)
正如评论中所提到的,这应该是一个函数,可以这样写:
ensure_success () {
if [[ $# -eq 0 ]]; then
echo "no command passed to ensure_success."
elif ! "$@"; then
echo "[$JOB_NAME] failed."
exit 1
fi
}
"$@"
扩展为传递给函数的参数的完整列表。我在评论中添加了一个基于Inian建议的检查,以确保至少有一个参数传递给函数。
这结合了运行命令和检查错误代码,因此你可以使用它:
ensure_success command arg1 arg2 arg3
因此,基于您问题中的示例,它将是:
ensure_success cf push -f "$MANIFEST_FILE" -p ZIP_FILE "$NEW_APP"
报价是免费的。
我不确定定义$JOB_NAME
的位置,但可能是全球性的。