http://blog.csdn.net/fansongy/article/details/6721575
1、env顯示當前的環境變量
2、PS1='[\u@\h \w \A] \$' 可以設置bash的命令與提示符。
3、echo $$ 顯示當前bash的PID號
4、echo $?顯示上一條指令的回傳值(指令成功回傳值爲0,其他爲非零)
5、unset name 取消變量的定義
6、定義變量語法:
7、引用變量:
8、export命令可以將一個局部變量提供給shell執行的其他命令使用:
export 變量名export 變量名=變量值
9、內部變量
$?:命令執行後返回的狀態(0爲正確執行;非0爲出錯) 可用於檢查上一個命令執行是否正確$$:當前進程的進程號$!:最近後臺進程號$#:位置參數的數量,$1表示第一個自變量$0:當前執行的進程名$1-$9:腳本參數$*:所有位置參數的內容
–格式:test conditions 也可以寫作 [ conditions ]test在以下4種情況下使用:–字符比較–兩個數值的比較–文件操作,例如文件是否存在及文件的狀態等–邏輯操作,可以進行and/or,與其他條件聯合使用test用於計算一個條件表達式的值,經常在條件語句和循環語句中用來判斷某些條件是否滿足,可以使用很多shell的內部操作符。
常用字符串屬性條件判斷
string_1=string_2
如果string_1和string_2兩個字符串相等則返回真,否則返回假; string_1!= string_2 如果string_1和string_2兩個字符串不相等則返回真,否則返回假; -z string 如果字符串string的長度爲0則返回真,否則返回假; -n string 如果字符串string長度不爲0則返回真,否則返回假; string 如果字符串string非空返回真,否則返回假。
通常與test結合使用,如:
#!?bin/bash
string_1=a string_2=b
test string_1 = string_2
echo $?
運行應該返回 1 。
12、整數操作符:計算整數表達式
常用的整數關係條件判斷 mum_1 –eq num_2 如果num_1和num_2相等則返回真,否則返回假; mum_1 –ne num_2 如果num_1不等於num_2則返回真,否則返回假; mum_1 –gt num_2 如果num_1大於num_2則返回真,否則返回假; mum_1 –lt num_2 如果num_1小於num_2則返回真,否則返回假; mum_1 –le num_2 如果num_1小於等於num_2則返回真,否則返回假; mum_1 –ge num_2 如果num_1大於等於num_2則返回真,否則返回假;
例如:
#!/bin/bash
n1=20
n2=30
[ $n1 -eq $n2 ]
echo $?
[ $n1 -gt $n2 ]
echo $?
輸出結果分別爲 1 和 1
13、文件操作符
常用的文件屬性條件判斷 -f fn 如果fn存在且fn爲普通文件則返回真,否則返回假。 -b fn 如果fn存在且fn爲塊設備則返回真,否則返回假。 -e fn 如果fn存在則返回真,否則返回假。 -d fn 如果fn 存在且fn爲目錄則返回真,否則返回假。 -r fn 如果fn存在且fn可讀則返回真,否則返回假。 -w fn 如果fn存在且fn可寫則返回真,否則返回假。 -x fn 如果fn存在且fn可執行則返回真,否則返回假。 -O fn 如果fn存在且被當前用戶擁有則返回真,否則返回假。 -L fn 如果fn存在且fn爲符號鏈接則返回真,否則返回假。
用test檢測,用法同字符操作類似 例如: test -w file
14、邏輯操作符
常用的邏輯操作符屬性條件判斷
- a (邏輯與)格式爲”condition1 –a condition2”,若兩個條件都爲真,則結果爲真 - o
(邏輯或):格式爲”condition1 –o condition2”,若兩個條件中有一個爲真,則結果爲真 ! (邏輯非):格式爲”!condition”.當condition爲真時,結果爲假,當condition爲假時,結果爲真
連接兩個表達式 :如 [ test string1 = string2 -a test -w file ]
15、shell中的引號:
1、單引號(‘):單引號括起來的字符(包括特殊字符)都作爲普通字符。2、雙引號:由雙引號括起來的字符,除$、\、’、和”這幾個字符仍是特殊字符並保留其特殊功能,其餘字符仍作爲普通字符對待。
[注]:$:用其後指定的變量值來代替這個變量\:轉義字符,其後面的字符爲普通字符。通常需要加\的只有4個字符, $、\、’、和”。對於”號,如果沒加\,則與前一個“號匹配3、反引號(`): 與鍵盤上的~同一個鍵上的符號。反引號括起來的字符串被shell解釋爲命令行,執行時,shell首先執行該命令行,並以它的標準輸出結果取代整個反引號部分。
16、通配符
*:代表任何字符串。例:f*匹配以f打頭的任意字符串。文件名前的圓點(.)和路徑名中的的斜線(/)必須顯式匹配。例:”*”不能匹配.file,只有”.*”纔可以匹配.file。?:代表任何單個字符。[ ]:代表指定的一個字符範圍,只要文件名中[ ]位置處的字符在[ ]中指定的範圍之內,那麼這個文件名就與這個模式串匹配。例:f[a-d] 或f[abcd]
符號類型 說明 * 當前目錄下的所有文件的名稱 *Text 當前目錄下所有文件中包含Text的文件 [ab-dm]* 當前目錄下所有以a、b、c、d、m開頭的文件的名稱 [ab-dm]? 當前目錄下所有以a、b、c、d、m開頭的且後面只跟一個字符的文件的名稱/usr/bin/?? 目錄/usr/bin下的所有名稱爲兩個字符的文件的名稱
17、調試執行 sh -x abc.sh 調試執行abc.sh 。sh -n abc.sh 不執行腳本,只檢測語法錯誤。
18、exit 退出程序執行。正常退出,返回值爲0;非0表示非正常退出。例如:exit 0
19、awk命令文件內容提取 例如:檢測提取root用戶 awk -F: '$3==0 {print $1}' /etc/passwd 其中-F更改分隔符
20、sh執行腳本的權限:對腳本有-r的權限,並且對腳本所在目錄有-rx權限。
直接執行腳本的權限:對腳本有-rx的權限,並且對腳本所在目錄有-rx權限。