$ sudo service --status-all | fgrep -e 'bluetooth'
[ ? ] alsa-utils
[ ? ] binfmt-support
[ + ] bluetooth
[ ? ] cpufrequtils
[ ? ] cryptdisks
[ ? ] cryptdisks-early
[ ? ] hdparm
[ ? ] hwclock.sh
[ ? ] kmod
[ ? ] loadcpufreq
[ ? ] networking
[ ? ] plymouth
[ ? ] plymouth-log
[ ? ] pppd-dns
[ ? ] udev-finish
[ ? ] virtualbox-guest-x11
$ sudo service bluetooth stop
[ ok ] Stopping bluetooth: /usr/sbin/bluetoothd.
$ sudo service --status-all | fgrep -e 'bluetooth'
[ ? ] alsa-utils
[ ? ] binfmt-support
[ - ] bluetooth
[ ? ] cpufrequtils
[ ? ] cryptdisks
[ ? ] cryptdisks-early
[ ? ] hdparm
[ ? ] hwclock.sh
[ ? ] kmod
[ ? ] loadcpufreq
[ ? ] networking
[ ? ] plymouth
[ ? ] plymouth-log
[ ? ] pppd-dns
[ ? ] udev-finish
[ ? ] virtualbox-guest-x11
service | grep
当只有 1 行(在每个输出集中)与模式匹配时,为什么我会得到 1 个以上的输出行grep
?线条开头有什么(坏的)魔力[?]
吗?或者,我错过了什么?
FWIW,我在跑步
$ date
Tue Nov 28 20:51:46 MST 2017
$ uname -rsv
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19)
$ lsb_release -ds
LMDE 2 Betsy
$ cat /etc/debian_version
8.9
$ gcc --version | head -n 1
gcc (Debian 4.9.2-10) 4.9.2
在我看来@Sundeep 是正确的。
如果您查看脚本是否
service
存在导致此行为的重定向重定向是针对错误情况(服务不支持调用
status
),因此虽然可见输出是[ ? ]
“juju”,但实际上是绕过 grep 的重定向。在命令行上测试这个......