P K*_*P K 4 linux bash exit exit-code
根据定义,退出代码 128 表示“无效的退出参数”。但是我总是得到 255(退出状态超出范围),以防参数像浮点数一样无效。
这是我的 linux 发行版上的专有实现吗?
# exit 1.234
exit
bash: exit: 1.234: numeric argument required
$ echo $?
255 //this should be 128?
# exit -1
exit
$ echo $?
255 //this is okay
Run Code Online (Sandbox Code Playgroud)
Bash 本身返回执行的最后一个命令的退出状态,除非发生语法错误,在这种情况下它以非零值退出。
最后一个命令是 bash 内置命令exit(来自手册页)
退出 [n]
导致 shell 以 n 状态退出。如果省略 n,则退出状态是执行的最后一个命令的状态。
检查WEXITSTATUS 的规范。
出口状态(stat_val)
如果 WIFEXITED(stat_val) 的值非零,则此宏计算子进程传递给 _exit() 或 exit() 的状态参数的低 8 位,或子进程从 main 返回的值()。
所以出口被限制为8位整数(0 - 255),所以-1会255。Exit 只理解一个整数参数而不是浮点数,所以它可能会踢出一个 default -1。
bash$ echo $BASH_VERSION
4.1.10(4)-release
bash$ exit foo
exit
bash: exit: foo: numeric argument required
$ echo $?
255
bash$ exit 2
exit
$ echo $?
2
bash$ exit -2
exit
$ echo $?
254
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20127 次 |
| 最近记录: |