linux – $中的命令行perl错误值不正确?
|
我使用命令行perl在文件中执行就地替换.这是代码:(注意带sudo的root perm)
如果成功,’echo $?’返回0.现在我使用chattr这样的文件使文件不可写,即使对于root:
我运行相同的perl命令,它失败并出现此错误:
哪个好.但是,’echo $?’在这种情况下仍然返回0.为什么会这样?它不应该返回表示错误的非零值吗? 最佳答案 问题是Perl没有为此条件返回非零退出状态(sudo传递给它的命令的退出状态),这有点令人烦恼.您可以通过识别如果文件无法重命名并且使用标志处理它而永远不会输入行读取循环来解决此问题:
爱斯基摩人问候(或蝴蝶)“operator”} {在某种程度上引入了END块;当文件的循环读取行结束时执行它之后会发生什么.其工作方式描述为here. 需要注意的是,如果config.txt为空,这也会报告错误.如果有点hackier方式是使用特殊$更短.行计数器变量用于相同的目的: (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 文件夹中最新文件的符号链接
- linux – LDAP用户主目录
- 在Linux上的Java / C应用程序的共享内存IPC的良好替代
- Common Linux log files name and usage--reference
- linux-kernel – 如何在解压缩失败时找到ARM Linux入口点?
- linux – 保存硬链接和符号链接,创建tar球时的权限,同时解压
- linux – 检查socket是否在bash中关闭?
- linux – 在ARM上构建mongo shell 3.2.x(armv7l / arm64 /
- linux – 防止bash脚本中的’rm -rf /’的最佳实践
- 我如何知道Linux上的GNU C剩余多少可用内存
