2012-02-20 170 views
0

一個子我需要從下面的代碼搜索的字符串「-Xms」:shell腳本搜索在AIX OS

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 2012-02-20 07:26:44

+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無法打開根目錄。 的grep:0652-033無法打開10158276. 的grep:0652-033無法打開5636342. 的grep:0652-033無法打開0 的grep:0652-033無法打開二月 等。====== ========= – user1215456 2012-02-20 08:21:41

+0

是的,在我的代碼中有一個錯誤...將糾正與正確的選項 – Raghuram 2012-02-20 08:38:26

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 2012-02-20 07:11:20

+0

究竟是語法錯誤? – Vijay 2012-02-20 07:12:19

+0

'不'預計 – user1215456 2012-02-20 07:19:57