#判斷進程是否存在,如果不存在就啟動它 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