bash 运行命令时是否返回任何内容?

bash 运行命令时是否返回任何内容?

我找到了测试 Bash 是否存在错误的指南。即,当

x='() { :;}; echo VULNERABLE' bash -c x

不返回任何东西,它很脆弱。但是是否存在像 C 中那样的情况,bash 可以返回某些内容但用户看不到它?

答案1

是的,您正在寻找退出代码,但这与这里完全无关。VULNERABLE如果您使用的 bash 版本存在漏洞,您运行的测试将打印到您的终端。如果你没有看到它,那么你就通过了测试。

虽然程序确实可以返回不一定向用户显示的信息,但这与此处的问题无关。例如,要查看 bash 中程序的退出代码,请使用以下$?变量:

$ ls /tmp > /dev/null
$ echo $?
0
$ ls /nonexistent_directory  > /dev/null
ls: cannot access /nonexistent_directory: No such file or directory
$ echo $?
2

所以,是的,可以返回一些你看不到的东西,除非你要求它,但不,这并不意味着你运行的测试可能会失败。

相关内容