Dav*_*uer 4 bash if-statement try-catch
在回答上一个问题时:
我怎样才能使用'我有root权限吗?' 作为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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
这选择了一个不成功的操作(阴影密码文件不应该是可执行的;你可以做一些事情chmod o-w /
- 如果你愿意的话,从根目录中删除公共写权限),并通过查看它来检查它是否有效命令的退出状态.这会抛弃错误消息 - 您必须决定是否重要.
'sudo'是为了提高特权; 如果你认为用户应该已经是'root',那么省略'sudo'.
归档时间: |
|
查看次数: |
6562 次 |
最近记录: |