【发布时间】:2022-01-27 02:29:01
【问题描述】:
在一些 bash 代码上应用 Google Shell Style Guide 时,我了解到我并不完全知道如何确定函数的退出状态。特别是,我想知道是否有任何成功的 bash 函数返回状态 0,或者是否只有某些命令确保它返回状态 0。
给出的例子:
#######################################
# Delete a file in a sophisticated manner.
# Arguments:
# File to delete, a path.
# Returns:
# 0 if thing was deleted, non-zero on error.
#######################################
function del_thing() {
rm "$1"
}
描述rm动作,显然会导致状态0。但是,我想知道是否所有其他不会导致错误的命令也返回状态0。(不包括设置特定返回状态的特定命令,如@ 987654325@)。
为了找出答案,我想检查某些函数的返回状态。然而,我还不完全知道该怎么做。因此,我想问:如何打印/查看/检查函数的返回状态?
【问题讨论】:
-
旁白:
function del_thing() {语法将 POSIX sh 形式del_thing() {与传统 ksh 语法functon del_thing {混合在一起,与 both POSIX sh 和传统 ksh 不兼容.最好只使用 POSIX 形式并完全跳过function关键字;另见wiki.bash-hackers.org/scripting/obsolete(那里的第一个和第三个表都有相关条目)。 -
(阅读您链接的样式指南,它混合了符合 POSIX 的函数声明和不兼容的错误声明;后者的存在导致我建议不要信任它,甚至比内部不一致)。