我想通过
获取当前正在运行的所有服务的名称sudo service --status-all | grep -E '[A-Za-z0-9-]+$'
对我来说,似乎应该从输出中选择正确的子串,但由于某种原因,所有行都以
开头[ ? ]
不匹配?
答案 0 :(得分:3)
问题是那些[ ? ]
的人在stderr而不是stdout上,所以grep无法看到他们使用|&
grep两个管道,请参阅下面的示例:
service --status-all |& grep -E '[A-Za-z0-9\.-]+$'
请注意,我还使用\.
稍微更改了您的正则表达式,因为rc.local
之类的服务不会被您原来的服务选中。