Centos 6.8で2行のbashスクリプトファイルを作成しました。
#! /bin/sh
pid= ps -ef | grep -i 'adminserver' | grep -v grep | awk '{print $2}'
kill -9 $pid
スクリプトを実行すると、次の結果が表示されます。
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
答え1
pid=
空白の後にはpid
変数が空の文字列に設定されます。残りの行は単にパイプを実行し、結果を出力します(リダイレクトされない限り端末で可能)。$pid
空だったのでkill
後で文句を言いました。
コマンドの出力をキャプチャするには、$(...)
を使用します。
pid=$( ps -ef | ... )
pkill
ただし、実行したい操作に使用する方が良いです。
pkill adminserver
pkill
マニュアルを参照してください。
KILL
また、可能であればこの信号を使用しません。たとえば、いつ-9プロセスを終了しないでください。」。