実行時にサービス名の左側に印刷される点をどのように抑制できますかsystemctl status XXX
?このコマンドの出力をbash変数に保存して印刷したいです。出力にドットがあると、スクリプトは失敗します。これは、ドットが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.
ベストアンサー1
解決したい問題が出力の一部としてUnicode文字を使用しない場合は、UTF-8を使用しないロケールでsystemdコマンドを呼び出すことができます。この場合、systemdは*
点の代わりにを印刷します。
LC_CTYPE
C
あるいは、などの変数を設定して、UTF-8以外のロケールを単一のコマンドで一時的に設定することもできますPOSIX
。
たとえば、
# 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.