ゾンビプロセスを表示するスクリプトを見つけたので試してみました。
#!/bin/bash
declare -a zombiepids
zombiepids=($(ps -eo pid,stat | grep 'Z' | sed 's/^ \{1,\}//g' | cut -d" " -f1))
if [ ${#zombiepids[*]} -gt 0 ]; then
echo "ゾンビプロセスは ${#zombiepids[*]} 個です"
ps -f -p ${zombiepids[*]}
fi
最初の$ はコマンド置換といって変数や引数にコマンドの結果を渡したいときに使われ、ここではps (プロセスの状態を取得する)コマンドで、Zの付くPIDを半角スペースを削除して、cutコマンドでPIDのみを、配列${zombiepids[*]}に格納しています。${#zombiepids[*]}で配列の要素数を表すのですね。sed がいまいちわかりません。また勉強ですね。
if文の -gt は比較演算子で真のときコマンドを実行します。
eq |
a=bのとき真 |
ne |
a≠bのとき真 |
lt |
a<bのとき真 |
gt |
a>bのとき真 |
le |
a≦bのとき真 |
ge |
a≧bのとき真 |
参考URL http://d.hatena.ne.jp/anmino/20100404/1270307084
UNIX/Linuxシェルスクリプトマスタリングハンドブック
http://shellscript.sunone.me/if_and_test.html
https://hydrocul.github.io/wiki/commands/cut.html
http://qiita.com/mashumashu/items/bbc3a79bc779fe8c4f99