如何使用条件 stdout/stdin

如何使用条件 stdout/stdin

最初,我想在 Bash 脚本中自动检查服务是否正在运行。然后我发现了一个我不理解但很好用的命令:

/usr/sbin/service mysql status || /usr/sbin/service mysql start

或者

if /usr/sbin/service mysql status > /dev/null
then
        echo "mysql running"
else
        echo "mysl not running"
fi

据我目前所知,左边应该返回类似 false 或 empty 的内容,但这些概念在 Linux 中并不存在。

我理解 stdin stdout stderr 但这里:当服务处于活动状态或不活动时,退出到 stdout 的结果service。那么 Linux 如何区分服务启动或不启动?它不检查文本,它应该在某处有一些 false 或 0...

如何找到它?我完全错了吗?

答案1

这与 stdin/stdout 无关。||意思是or

首先执行左边的命令。如果返回代码 >0(如果状态正常),则右边不需要执行,因为1 or anything是 1。如果状态返回 0,则执行右边。

相关内容