Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 以列表格式显示服务_Linux_Bash - Fatal编程技术网

Linux 以列表格式显示服务

Linux 以列表格式显示服务,linux,bash,Linux,Bash,我正在搜索一种显示服务--status all命令输出的方法,该命令带有列表格式(如lsdoes) 我看到了一些使用prinf的技巧,但我不理解任何东西:s 这样做的想法是: 状态服务名称| |状态服务名称 [+]Apache[+]cntlm [+]MySQL[+]cron [-]卡斯珀 [?]irqbalance 而不是 [+]Apache [+]cntlm [+]cron [+]MySQL [-]卡斯珀 [?]irqbalance 有什么想法吗(使用pr命令可以做到这一点 echo "$

我正在搜索一种显示
服务--status all
命令输出的方法,该命令带有列表格式(如
ls
does)

我看到了一些使用
prinf
的技巧,但我不理解任何东西:s

这样做的想法是:

状态服务名称| |状态服务名称
[+]Apache[+]cntlm
[+]MySQL[+]cron
[-]卡斯珀
[?]irqbalance
而不是

[+]Apache
[+]cntlm
[+]cron
[+]MySQL
[-]卡斯珀
[?]irqbalance

有什么想法吗(

使用
pr
命令可以做到这一点

echo "$input" | pr -2t
给予

给予

  • -2
    表示两列
  • -a
    表示“跨越”
  • -t
    跳过页面标题

您也可以像这样使用
命令:

service --status-all 2>&1 | column -c 70

service
命令中的
2>&1
部分将把那些状态未知的服务重定向到标准输出,而不是stderr,从而避免将
[?]
服务分开列出)

命令中的
-c 70
表示您希望列的宽度为70个字符(至少这是

echo "$input" | pr -2at
[ + ]    Apache                     [ + ]    cntlm
[ + ]    cron                       [ + ]    MySQL
[ - ]    casper                     [ ? ]    irqbalance
service --status-all 2>&1 | column -c 70