使用test命令進行進行條件測試
格式: test conditions
test在以下四種情況下使用:
a. 字元比較
b.兩個整數值的比較
c. 檔案操作,如檔案是否存在及檔案的狀態等
d. 邏輯操作,可以進行and/or,與其他條件聯合使用
a. 測試字元資料: shell變數通常均作為字元變數
str1 = str2 二者相長,相同
str1 != str2 不同
-n string string不為空(長度不為零)
-z string string為空
string string不為空
例:$ str1=abcd #在含有空格時必須用引號括起來
$ test $str1=abcd
$ echo $?
0 #無錯
$ str1="abcd "
$ test $str1=abcd
$ echo $?
1 #有錯,因為str1的字串後面還有個空格,不等於abcd
note: 在test處理含有空格的變數時最好用引號將變數括起來,否則會出現錯誤的
結果,因為shell在處理命令行時將會去掉多餘的空格,而用引號括起來則可以防止
shell去掉這些空格.
例:$ str1=" "
$ test $str1
$ echo $?
1$ test "$str1"
$ echo $?
0$ test -n $str1
test: argument expected
$ test -n "$str1"
$ echo $?0$
b. 整數測試: test與expr相同,可以將字元型變數轉換為整數進行操作,expr進行
整數的算術運算,而test則進行邏輯運算.
表示式 說明
---------------------------------------
int1 -eq int2 相等?
int1 -ne int2 不等?
int1 -gt int2 int1 > int2 ?
int1 -ge int2 int1 >= int2 ?
int1 -lt int2 int1 < int2 ?
int1 -le int2 int1 <= int2 ?
例:$ int1=1234
$ int2=01234
$ test $int1 -eq $int2
$ echo $?
0c. 檔案測試:檢查檔案狀態如存在及讀寫許可權等
-r filename 使用者對檔案filename有讀許可權?
-w filename 使用者對檔案filename有寫許可權?
-x filename 使用者對檔案filename有可執行許可權?
-f filename 檔案filename為普通檔案?
-d filename 檔案filename為目錄?
-c filename 檔案filename為字元裝置檔案?
-b filename 檔案filename為塊裝置檔案?
-s filename 檔案filename大小不為零?
-t fnumb 與檔案描述符fnumb(預設值為1)相關的裝置是乙個終端裝置?
d. 測試條件之否定,使用!
例:$ cat /dev/null > empty
$ test -r empty
$ echo $?
0$ test -s empty
1$ test ! -s empty
$ echo $?
0e. 測試條件之邏輯運算
-a and
-o or
例: $ test -r empty -a -s empty
$ echo $?
1f. 進行test測試的標準方法
因為test命令在 shell程式設計中占有很重要的地位,為了使shell能同其他程式語言
一樣便於閱讀和組織, bourne shell在使用test測試時使用了另一種方法:用方括號將
整個test測試括起來:
$ int1=4
$ [ $int1 -gt 2 ]
$ echo $?
0
使用 bc 進行進製轉換
使用 bc 進行進製轉換 在 shell 中進行進製轉換的另乙個訣竅是使用bc,它是一種任意精度運算語言,大多數 unix linux 安裝程式都提供。因為它允許您指定輸出進製,所以當您需要以十進位制以外的進製輸出時,這是一種很好的技術。bc的特殊變數ibase和obase分別包含用於輸入和輸出的進...
使用命令列進行截圖!!!
今天我想進行截圖這樣偉大而又稀鬆的任務的時候發現了,我使用不了滑動截圖,坑啊 我開始在網上怒找截圖工具,但是未果。但是找到了,命令列截圖這麼牛掰的方法,我使用了一下,還是可以的,不錯啊,有可以在小夥伴面前裝x了 但是在這裡還是要總結一下比較好,主要介紹兩種截圖命令,工作環境 ubuntu 12 04...
使用apache的ab命令進行壓測
環境盡量和線上保持一致 ngixn版本,php版本,網路大小,在測試高併發的時候要修改測試機的最大訪問量ulimit n,ab是單執行緒程式,只能利用單一cpu,在給效能好的伺服器端應用做壓測時,往往跑ab的測試機負荷滿了 而伺服器應用的效能還綽綽有餘。yum y install httpd too...