加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在bash中“尝试做某事然后检测它是否失败”?

发布时间:2020-12-15 18:57:33 所属栏目:安全 来源:网络整理
导读:在回答上一个问题时: How can I use ‘do I have root access?’ as a conditional in bash? 建议“尝试做某事并检测是否失败”而不是“检查权限然后做某事” 我发现了很多理由,例如: Thorough use of ‘if’ statements or ‘try/catch’ blocks? What is
在回答上一个问题时:

How can I use ‘do I have root access?’ as a conditional in bash?

建议“尝试做某事并检测是否失败”而不是“检查权限然后做某事”

我发现了很多理由,例如:

> Thorough use of ‘if’ statements or ‘try/catch’ blocks?
> What is the advantage of using try {} catch {} versus if {} else {}

但是,我发现很少有关于如何在bash中实现try / catch的明确信息.我猜它太容易了,除了我发现的东西看起来相当复杂 – 使用函数或其他脚本:

> Error handling in Bash
> Executing code in if-statement (Bash)

我对bash相对比较新,但我觉得没有一个类似于其他语言的try函数的简单函数.

具体来说,我想做以下事情:

CMD=`./path/to/script.sh`
if [ <echo $CMD | grep error is true> ]; then
        .. do this ..
else 
        .. do that ..
fi
if sudo chmod a-x /etc/shadow 2>/dev/null
then : Yes - I have root permissions
else : No - I do not have root permissions or /etc/shadow does not exist or ...
fi

如果成功,则选择不会造成损坏的操作(阴影密码文件不应该是可执行的;如果您愿意,可以执行chmod ow / – 从根目录中删除公共写入权限),并检查它是否有效通过查看命令的退出状态.这会抛弃错误消息 – 您必须决定是否重要.

‘sudo’是为了提高特权;如果你认为用户应该已经是’root’,那么省略’sudo’.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读