Suprimir ponto ao imprimir o status de um serviço com systemctl

0

Como faço para suprimir o ponto que é impresso à esquerda do nome do serviço quando eu corro systemctl status XXX ? Eu gostaria de salvar a saída deste comando para uma variável bash e imprimi-lo. A presença do ponto na saída faz com que meu script falhe, provavelmente porque o ponto é um caractere unicode.

# systemctl status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since Thu 2018-10-11 09:16:29 PDT; 6h ago
     Docs: man:systemd-sysv-generator(8)

Oct 11 09:16:24 172.100.139.200 systemd[1]: Starting LSB: Bring up/down networking...
Oct 11 09:16:24 172.100.139.200 network[1376]: Bringing up loopback interface:  [  OK  ]
Oct 11 09:16:28 172.100.139.200 network[1376]: Bringing up interface eth0:  [  OK  ]
Oct 11 09:16:29 172.100.139.200 systemd[1]: Started LSB: Bring up/down networking.
    
por linuxfan 12.10.2018 / 00:26

2 respostas

5

Se o problema que você está tentando resolver é evitar caracteres Unicode como parte da saída, então você pode chamar o comando systemd com uma configuração local que não use UTF-8, nesse caso o systemd irá imprimir uma * em vez do ponto.

Você pode definir temporariamente um código de idioma não UTF-8 como um único comando definindo a variável LC_CTYPE como algo como C ou POSIX .

Por exemplo:

# LC_CTYPE=C systemctl status network
* network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since Thu 2018-10-11 09:16:29 PDT; 6h ago
     Docs: man:systemd-sysv-generator(8)

Oct 11 09:16:24 172.100.139.200 systemd[1]: Starting LSB: Bring up/down networking...
Oct 11 09:16:24 172.100.139.200 network[1376]: Bringing up loopback interface:  [  OK  ]
Oct 11 09:16:28 172.100.139.200 network[1376]: Bringing up interface eth0:  [  OK  ]
Oct 11 09:16:29 172.100.139.200 systemd[1]: Started LSB: Bring up/down networking.
    
por 12.10.2018 / 02:00
2

Veja man systemctl :

status

This function is intended to generate human-readable output. If you are looking for computer-parsable output, use show instead. ...

show

To select specific properties to show, use --property=. This command is intended to be used whenever computer-parsable output is required.

    
por 12.10.2018 / 00:40

Tags