現在実行中の特定のプログラムを一覧表示する Bash エイリアス (またはスクリプト) を作成しようとしています。
私の場合、関心のあるすべてのプログラムを含むディレクトリ.bashrc
に設定しました。$MY_BIN_PATH
export MY_BIN_PATH=/root/repo/bin
$ > echo $MY_BIN_PATH
/ルート/レポ/ビン
そのディレクトリを一覧表示すると、多数のファイルが表示されます。grep
これらのそれぞれについて出力したいps -ef
:
for i in `ls $MY_BIN_PATH`;
do
ps -ef | grep $i | egrep -v "grep|md_m|avahi";
done
実行中のファイル (存在する場合) に関係なく$MY_BIN_PATH
、出力は常に次のようになります。
/bin/grep: Unmatched [ or [^
/bin/grep: Unmatched [ or [^
/bin/grep: Unmatched [ or [^
/bin/grep: Unmatched [ or [^
/bin/grep: Unmatched [ or [^
との間のパイプでの値が「忘れられた」ようです。$i
ps -ef
grep $i
ここで何が間違っているのですか?どうすれば機能させることができますか?