在perl中,您可以使用错误消息退出die "some msg".在bash中是否有相同的单个命令?现在,我正在使用命令实现此目的:echo "some msg" && exit 1
Kei*_*son 71
你可以轻松地自己动手:
die() { echo "$*" 1>&2 ; exit 1; }
...
die "Kaboom"
Run Code Online (Sandbox Code Playgroud)
tri*_*eee 27
这就是我正在使用的.它太小了,无法放入图书馆,所以我必须输入数百次......
warn () {
echo "$0:" "$@" >&2
}
die () {
rc=$1
shift
warn "$@"
exit $rc
}
Run Code Online (Sandbox Code Playgroud)
用法: die 127 "Syntax error"
小智 11
这是perl的"die"非常接近的函数(但是带有函数名):
function die
{
local message=$1
[ -z "$message" ] && message="Died"
echo "$message at ${BASH_SOURCE[1]}:${FUNCNAME[1]} line ${BASH_LINENO[0]}." >&2
exit 1
}
Run Code Online (Sandbox Code Playgroud)
如果内置函数失败,则使用bash方式死亡(使用函数名称)
function die
{
local message=$1
[ -z "$message" ] && message="Died"
echo "${BASH_SOURCE[1]}: line ${BASH_LINENO[0]}: ${FUNCNAME[1]}: $message." >&2
exit 1
}
Run Code Online (Sandbox Code Playgroud)
因此,Bash将所有需要的信息保存在几个环境变量中:
是的,你就是这么做的。
您可以使用分号或换行符而不是 &&,因为无论 echo 是否成功,您都想退出(尽管我不确定什么会导致它失败)。
在 shell 中编程意味着使用大量的小命令(一些内置命令,一些小程序)来很好地完成一件事,并将它们与文件重定向、退出代码逻辑和其他粘合剂连接起来。
如果您习惯使用函数或方法完成所有操作的语言,这可能看起来很奇怪,但您已经习惯了。