linux判斷進程是否存在


#判斷進程是否存在,如果不存在就啟動它

pid=`ps -ef|grep nginx|grep -v grep|awk '{print $2}' ` 

 

grep -I ‘進程名’:-i 忽略大小寫匹配含有進程名的字段,即查找該進程

        若不寫-I ,直接匹配

grep -v grep:在使用grep查找的同時,創建了一個grep -I ‘進程名'的進程,該進程不是我們需要的,使用-v參數忽略grep進程。即去除包含grep的進程行 ,避免影響最終數據的正確性

awk '{print $2}' :意為取第二個字段輸出

 

$2:表示第二個字段

print $2 : 打印第二個字段
awk '{print $2}' $fileName : 一行一行的讀取指定的文件, 以空格作為分隔符,打印第二個字段

 

擴展知識:

grep -n  打印行號

grep -E = egrep 匹配正則表達式

grep -i 忽略大小寫

awk命令知識點較多,單獨進行整理

 

grep -v grep

 

grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。

-a 不要忽略二進制數據。
-A<顯示列數> 除了顯示符合范本樣式的那一行之外,並顯示該行之后的內容。
-b 在顯示符合范本樣式的那一行之外,並顯示該行之前的內容。
-c 計算符合范本樣式的列數。
-C<顯示列數>或-<顯示列數>  除了顯示符合范本樣式的那一列之外,並顯示該列之前后的內容。
-d<進行動作> 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep命令將回報信息並停止動作。
-e<范本樣式> 指定字符串作為查找文件內容的范本樣式。
-E 將范本樣式為延伸的普通表示法來使用,意味着使用能使用擴展正則表達式。
-f<范本文件> 指定范本文件,其內容有一個或多個范本樣式,讓grep查找符合范本條件的文件內容,格式為每一列的范本樣式。
-F 將范本樣式視為固定字符串的列表。
-G 將范本樣式視為普通的表示法來使用。
-h 在顯示符合范本樣式的那一列之前,不標示該列所屬的文件名稱。
-H 在顯示符合范本樣式的那一列之前,標示該列的文件名稱。
-i 忽略字符大小寫的差別。
-l 列出文件內容符合指定的范本樣式的文件名稱。
-L 列出文件內容不符合指定的范本樣式的文件名稱。
-n 在顯示符合范本樣式的那一列之前,標示出該列的編號。
-q 不顯示任何信息。
-R/-r 此參數的效果和指定“-d recurse”參數相同。
-s 不顯示錯誤信息。
-v 反轉查找。
-w 只顯示全字符合的列。
-x 只顯示全列符合的列。
-y 此參數效果跟“-i”相同。
-o 只輸出文件中匹配到的部分。


grep match_pattern file_name
grep "match_pattern" file_name

使用正則表達式 -E 選項:
grep -E "[1-9]+"
或
egrep "[1-9]+"


grep "text" . -r -n
# .表示當前目錄。


grep靜默輸出:
grep -q "test" filename

#不會輸出任何信息,如果命令運行成功返回0,失敗則返回非0值。一般用於條件測試。

  

 

awk 參考資料

http://blog.chinaunix.net/uid-23302288-id-3785105.html

 
        

 

 

 

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM