shell學習總結

1>程序必須以下面的行開始,符號#!用來告訴系統它後面的參數是用來執行該文件的程序。

#!/bin/sh或者其它

 

2>變量賦值

第一:在等號 "=" 的兩邊沒有空格

第二個:在定義一個字時可以省略引號,但是當定義的環境變量值多於一個字時(包含 空格或製表鍵),引號是必須的。

 

3>當環境變量沒有與周圍文本明顯分開時,可以用花括號將它括起

myvar='test'

echo $myvartest(錯誤)

echo ${myvar}test(正確)

 

4>當導出環境變量時,它可以自動地由以後運行的任何腳本或可執行程序環境使用

export myvar

 

5>單引號與雙引號區別

單引號變量無法擴展

myvar=test

echo '$myvar' //結果:$myvar

echo "$myvar" //結果:test

 

6>`反引號

反引號的功能是命令替換,將反引號中的字符串做爲命令來執行

A=`date`
echo $A 顯示的不是date而是當時的時間串

 

7>##,#,%%,%的用法參考

http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-1/index.html

 

8>"$0" 這個程序的執行名字,$n 這個程序的第n個參數值,n=1..9 ,$* 這個程序的所有參數,$# 這個程序的參數個數,$? 執行上一個指令的返回值

 

9>判斷文件的屬性

 

-e 文件存在返回1, 否則返回0

-r 文件可讀返回1,否則返回0

-w 文件可寫返回1,否則返回0

-x 文件可執行返回1,否則返回0

-o 文件屬於用戶本人返回1, 否則返回0

-z 文件長度爲0返回1, 否則返回0.

-f 文件爲普通文件返回1, 否則返回0

-d 文件爲目錄文件時返回1, 否則返回0

 

10>測試字符串

 

字符串1 = 字符串2 當兩個字串相等時爲真

字符串1 != 字符串2 當兩個字串不等時爲真

-n 字符串    當字符串的長度大於0時爲真

-z 字符串  當字符串的長度爲0時爲真

字符串 當串字符串爲非空時爲真

 

11>測試兩個整數關係

 

數字1 -eq 數字2 兩數相等爲真

數字1 -ne 數字2 兩數不等爲真

數字1 -gt 數字2 數字1大於數字2爲真

數字1 -ge 數字2   數字1大於等於數字2爲真

數字1 -lt 數字2 數字1小於數字2爲真

數字1 -le 數字2 數字1小於等於數字2爲真

 

12>邏輯測試

 

-a  與
-o  或
!      非

 

13>特殊字符

 

$ 美元符

 

\ 反斜槓

 

` 反引號

 

" 雙引號

 

< ,>,*,?,[,]

 

14>通配符

 

* 任意字符串


? 一個任意字符


[abc] a, b, c三者中之一


[a-n] 從a到n的任一字符

 

15>字符串比較

請用雙引號括起字符串和字符串變量,因爲如果環境變量中恰巧有一個空格或製表鍵,bash 將無法分辨,從而無法正常執行程序

if [ "$myvar" = "foo bar oni" ]
then
     echo "yes"
fi

 

16>shell算術

請使用算術表達式用 "$((" 和 "))" 括起

echo $((1+3))

 

17>確保方括號空格

通常用" [ ] "來表示條件測試。要確保方括號的空格。

 

18>local定義變量,把變量放在局部名稱空間

 myvar="hello"
 myfunc() {
     local x
     local myvar="one two three"
     for x in $myvar
     do
         echo $x
     done
 }
 
 myfunc
 
 echo $myvar $x

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章