首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在重新启动Linux计算机之前添加条件

如何在重新启动Linux计算机之前添加条件
EN

Stack Overflow用户
提问于 2018-01-30 12:16:01
回答 1查看 223关注 0票数 1

我们想在init 6生效之前增加一些重要的测试(在红帽子上)。

如下所示

我们在/root/..bashrc中添加函数( init )

代码语言:javascript
复制
init () {
    /home/sanity.sh
    [[ $? –eq 0 ]] && echo "reboot will performed" || 
         echo "reboot will not performed because sanity.sh exit with error" && exit 1
    Sleep 1
    init $@    
}

但是由于一些不清楚的原因,init 6没有执行。

我的功能有什么问题?

目标-在/home/sanity.sh init 6命令之前,我们希望从脚本获得状态。

如果状态为0,则init 6将完成,如果没有,则init 6将不被允许!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-30 12:26:59

如果您的测试被重写以打印它所做的事情,而不是做它,那么首先通过:

代码语言:javascript
复制
~$> x=0
~$> [[ $x -eq 0 ]] && echo "pass1" || echo "fail1" && echo "exit"
pass1
exit

然后失败:

代码语言:javascript
复制
~$> x=1
~$> [[ $x -eq 0 ]] && echo "pass1" || echo "fail1" && echo "exit"
fail1
exit

因此,您需要在||之后对所有内容进行分组,以便只有当test失败时才执行exit

代码语言:javascript
复制
~$> x=0
~$> [[ $x -eq 0 ]] && echo "pass1" || { echo "fail1" && echo "exit"; }
pass1

然后,您需要使用command来实际调用init

命令实用程序将使shell将参数视为简单的命令,从而抑制第2.9.1.1节命令搜索和执行项1b中描述的shell函数查找。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48521261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档