サービスが実行されているかどうかを示すスクリプトを作成しようとしています。
コマンド:
service ntpd status | awk '{print $5}'
出力:
running...
この点をどのように削除できますか?それとも、サービスが実行されているかどうかを確認するより良い方法はありますか?
答え1
awkのコマンドを使用できますgsub
。
$ service ntpd status | awk '{gsub(/[.]/,"");print $NF}'
running
NF
ステータスワードは通常最後のワード出力であるために使用されます。
このコマンドはservice
サービスを確認する古い方法です(まだsystemctlを使用していないシステムの場合)。 systemdで使用する:
systemctl is-active sshd >/dev/null 2>&1 && echo YES || echo NO
答え2
以下のsedコマンドを試してみましたが、正常に動作します。
@praveen_linux_example ~]# service sshd status| sed "s/\.//g"
openssh-daemon (pid 2268) is running
答え3
あなたが主張している場合sed
:
service ntpd status | sed 's/^.* \|\.*$//g'
running