小编vit*_*tix的帖子

尽管语法错误,Shell 脚本仍返回 0 exit_status

考虑这个脚本:

#!/bin/sh

foo=1
if [[ ! -z $foo ]]; then
    echo abc
fi
Run Code Online (Sandbox Code Playgroud)

它使用 Bash 语法 [[ ... ]] 当我在 Ubuntu (dash) 上使用默认 shell 运行它时,它不起作用(如预期)。但是,它的返回码仍然为零。

$ ./tmp.sh
./tmp.sh: 4: ./tmp.sh: [[: not found
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

如果我不能依赖退出代码,如何在脚本中检测这种错误?

shell dash exit-status

10
推荐指数
2
解决办法
461
查看次数

标签 统计

dash ×1

exit-status ×1

shell ×1