想象一个具有标准 bash linux 脚本(在 SUSE linux 上运行)的脚本。像这样:
#!/bin/bash
#version=1.0
#Some other text
command
#-------Comment
Changeversion=2.0
...
...
有什么方法可以自动处理错误或至少说一条自定义消息?例如,我将尝试运行脚本,但它说:
-bash: ./filename.sh: Keine Berechtigung
所以我必须为文件添加权限 - 有什么方法可以在尝试运行它时自动为该文件添加权限,或者至少添加“自定义消息”,如“do chmod +x filename.sh”?
或者,如果我有不同的编码:
/bin/bash^M: bad interpreter:
脚本本身是否可以运行此命令:
sed -i -e 's/\r$//' filename.sh
或者至少在错误信息中说出来?
我复制了你的问题:
以下命令解决了执行该命令的 bash 会话的问题:
命令陷阱仅对您当前的会话有效,将其放在 /etc/profile /etc/profile.d 或一些类似的配置文件中,以使其对所有 bash 会话保持持久性。
我仅在 RHEL 7 系统上使用 bash-4.2.46-19.el7.x86_64 对其进行了测试
这个问题在没有人解释原因的情况下被否决(对你投反对票的人感到羞耻!)所以我会解释为什么我要投反对票(是的,这应该是一个评论,但它有点太大了)。
尽管这些对于您让代码运行的目标似乎无关紧要,但它们的存在是有充分理由的。在计算机上运行代码本质上是危险的。显然,除非它们运行代码,否则计算机并没有多大用处,但它们运行正确的代码很重要。对常见错误实施自动修复有两大影响:
此外,有时错误并非看起来的那样——您可能具有访问脚本的文件系统权限,但它可能位于已
noexec
挂载的文件系统上,或者访问可能被 SELinux 阻止。或Apparmour。或 GRSecurity。一个特定的错误消息不等于一个特定的解决方案。