【发布时间】:2018-01-30 12:16:01
【问题描述】:
我们想在init 6生效之前添加一些重要的测试(在redhat上)
如下
我们在 /root/.bashrc 中添加函数(init)
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 没有执行
我的函数出了什么问题?
Goal - 在 init 6 命令之前,我们想从 /home/sanity.sh 获取状态 脚本
如果 status 为 0 则 init 6 将完成,如果不是则 init 6 将不允许!
【问题讨论】:
-
这个函数无限循环,你怎么知道没有被调用
-
函数被调用但重启没有完成,所以中间的东西不像预期的那样
-
init ()-> 为什么不给函数取一个更合理的名字呢?这将与init- 服务管理器冲突。作为旁注双引号$@。 -
因为用户需要使用“init 6”命令,而当我们使用init函数时,函数init会采取行动而不是真正的init CLI