liz*_*zhe 2 command-line grep services
运行时这里似乎很奇怪
service --status-all | grep mysql
Run Code Online (Sandbox Code Playgroud)
为什么我得到这么多错误的结果?
它在我得到的 Centos 上运行良好:
mysql is running xxxxxxx
Run Code Online (Sandbox Code Playgroud)
这就是我在 Ubuntu 上得到的:
service --status-all在 STDOUT(文件描述符 1)和 STDERR(文件描述符 2)上显示其输出,其中可以在 STDOUT 上确定状态的服务(由[+]或表示[-])和无法在 STDERR 上确定状态的服务(由 表示)[?])。
在执行 时service --status-all | grep mysql,您只运行grep了 的 STDOUT service --status-all,这就是为什么显示在 STDERR 上的所有内容(以及 的可能输出grep)。
要仅获得所需的结果,请将运行重定向 STDOUT 和 STDERR 都重定向到grep:
service --status-all |& grep mysql
Run Code Online (Sandbox Code Playgroud)
测试:
看看里面的标志[]:
% service --status-all >/dev/null ## Discarding STDOUT
[ ? ] apport
[ ? ] binfmt-support
[ ? ] console-setup
[ ? ] dns-clean
[ ? ] irqbalance
[ ? ] killprocs
[ ? ] kmod
[ ? ] lightdm
[ ? ] mysql
% service --status-all 2>/dev/null ## Discarding STDERR
[ + ] acpid
[ - ] anacron
[ - ] apparmor
[ + ] atd
[ + ] atop
[ + ] avahi-daemon
[ + ] bluetooth
[ - ] brltty
[ + ] cron
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |