2012-02-20 23 views
0

私は以下のコードから文字列「-Xms」を検索する必要があります。シェルスクリプト

cat | ps -eaf|grep $LOGNAME | while read LINE 
do 
if [[ grep LINE = "-Xms" ]]; then 
     pid=$(echo $LINE | awk '{print $2}') 
    #echo $pid 
    kill -9 $pid 
fi 
: 
done 

しかし、このコードは、AIX上では動作しません。 Linux上でうまく動作します。

助けてください。

答えて

0

私は、grepの戻り値を格納するための変数を作成するようにスクリプトを少し変更しました。 試用版

ps -aef|grep $LOGNAME | while read LINE 
do 
PAT=`grep "\-Xms" $LINE` 
if [ "$PAT" != "" ]; then 
    pid=$(echo $LINE | awk '{print $2}') 
    #echo $pid 
    #kill -9 $pid 
fi 
done 
+0

エラーはgrep:0652から033 0 はgrepを開くことができません:0652から033には、12:43を開くことができません。 30。 grep:0652-033開けません - 。 grep:0652-033 0:00を開けません。 grep:0652-033 -mを開くことができません。 – user1215456

+0

このコードは、次のエラーをスローします。grep:0652-033 0を開けません。 grep:0652-033 12:43:30を開けません。 grep:0652-033開けません - 。 grep:0652-033 0:00を開けません。 grep:0652-033 sshd:を開くことができません。 grep:0652-033 appuser @ nottyを開くことができません。 grep:0652-033 rootを開くことができません。 はgrep:0652から033には10158276. はgrepを開くことができません:0652から033を開くことができません5636342. はグレップ:0652から033には、開くことができません0 はgrep:2月 0652から033を開くことができないなど。====== ========= – user1215456

+0

はい私のコードにエラーがあります...正しいオプションで修正します – Raghuram

0

私はテストしませんでした。 あなたの完全なループを置き換えることができます。

部分文字列を探しに来
ps -eaf | grep $LOGNAME| grep "-Xms"|awk '{print $2}'|xargs kill -9 

cat | ps -eaf|grep $LOGNAME |grep "-Xms" while read LINE 
do 
pid=$(echo $LINE | awk '{print $2}')  
kill -9 $pid 
done 
+0

ありがとう。しかし、構文エラーを取得する: – user1215456

+0

正確に構文エラーはどこですか? – Vijay

+0

'do'は期待されていません – user1215456