我找到了测试 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
所以,是的,可以返回一些你看不到的东西,除非你要求它,但不,这并不意味着你运行的测试可能会失败。