gpt4 book ai didi

bash - 我怎样才能在 bash 中找到 "try to do something and then detect if it fails"?

转载 作者:行者123 更新时间:2023-11-29 09:10:41 26 4
gpt4 key购买 nike

在对上一个问题的回答中:

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

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

我已经找到了很多理由,例如:

但是,我发现关于如何在 bash 中实现 try/catch 的明确信息很少。我想这太简单了,只是我发现的东西看起来相当复杂——使用函数或其他脚本:

我对 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 o-w/ 的操作 - 从根目录中删除公共(public)写入权限如果你愿意的话),并通过查看命令的退出状态来检查它是否有效。这会丢弃错误消息 - 您必须决定这是否重要。

'sudo' 用于提高权限;如果您认为用户应该已经是“root”,则省略“sudo”。

关于bash - 我怎样才能在 bash 中找到 "try to do something and then detect if it fails"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com