当我使用 Bash 时,我喜欢使用突出的调试模式,所以每次我得到一台新机器时,我都会添加到~/.profile代码的末尾set -x。
我也考虑添加eu,因此set -eux作为“最佳实践”。
如果我正确理解了BR 手册
e 给了我不执行代码的好处,这些代码最终会返回一个非零(通常是错误的)输出。u - 我不太明白,男人说:执行参数扩展时,将未设置的变量和特殊参数 '@' 或 '*' 以外的参数视为错误。错误消息将写入标准错误,并且非交互式 shell 将退出。
在我看来,这听起来很像,e但也将未设置的变量视为导致错误的变量,并以非零值退出。
对于寻求最佳“典型”调试的人来说,我在这里的理解是否准确并且set -eux比set -x一般情况下更好?
Ste*_*itt 16
这是一个见仁见智的问题,但我认为set -eu对于交互式使用来说是个坏主意。以下是每个人的作用:
在交互式 shell 中,这意味着命令中的任何错误都会导致 shell 退出!例如,命令名称中的拼写错误、rm文件名不正确或echo $blah变量名不正确...
set -e并且set -u在编写 shell 脚本时很有用。特别是,set -e避免了复合错误:一旦命令失败,脚本就会退出,这可以避免后续命令不会在他们期望的上下文中运行的麻烦。
与您的解释相比,请注意,这-e并不能保护您免于执行会返回非零状态的代码;必须执行命令才能返回非零状态。
| 归档时间: |
|
| 查看次数: |
8881 次 |
| 最近记录: |