是否有Perl的die
函数的shell等价物(在bash或zsh中)?
我想设置退出代码并在一行中打印一条消息。我知道我可以创建自己的简单函数,但我有点希望内置。
答案 0 :(得分:2)
不,你需要两者
echo
和exit
答案 1 :(得分:2)
只需制作一个shell
函数:
die() {
[[ $1 ]] || {
printf >&2 -- 'Usage:\n\tdie <message> [return code]\n'
[[ $- == *i* ]] && return 1 || exit 1
}
printf >&2 -- '%s' "$1"
exit ${2:-1}
}
示例强>
die "Oops, there's something wrong!\n" 255
<强>说明强>
${2:-1}
是bash parameter expansion:如果缺少第二个参数,则exit 1
1
与FALSE
相同(1 =&gt; 255)die() { }
首选为oldish function die {}
perl
然后~/.bashrc
source ~/.bashrc
或手动放置。source ~/.bashrc
测试您是否处于交互式shell中