進階bash編程指南(一)

來源:互聯網
上載者:User

1.cat /dev/null > messages 清空messages檔案的內容。注意方向性。

2.shell的執行

(1)將scriptfile放到/usr/local/bin中,這樣系統中的所有使用者都可以使用了只要輸入scriptfile即可。

(2)sh scriptfile 運行bash指令碼將會禁止所有bash的擴充特性。

3.命令分割符【分號】,允許同一行裡有多個命令。

4.case語句天生具有break的特性。

5.【點號】命令作為一個檔案名稱的首碼時,使該檔案具有了隱藏屬性。除非用ls 加-a選項,不能顯示。

6.【雙引號】裡面的特殊字元能夠被解釋,【單引號】是更強的引用,不允許解釋變數和其他特殊的字元。

7.【逗號】運算式類似於C語言中的逗號運算式。用於串連一連串的數學運算式,每一個運算式都被求值,但只有最後一個被返回。

8.【`】(backquotes)命令替換 `command`可以將command的執行結果賦值給一個變數

9.【冒號】空命令。

(1)空操作退出碼是真(0),它一般被認為和shell的內建命令true一樣,它時Bash自身內建的。

(2)在必須要有兩元操作的地方作為一個分割符和預留位置。

if condition

then : #這裡其實不做什麼,也不可為空,否則語法錯誤。

else

  take-some-action

fi

: ${var='whoami'},注意:後面的空格。不加冒號,語法錯誤。

(3)和重新導向操作符(>)連用,把一個檔案長度截斷為0,檔案許可權不變。如果檔案不存在,則會建立一個新檔案。

 : > file相當與cat /dev/null > file 或者 echo > file

和闐間重新導向操作符(>>)連用file存在沒影響,不存在則建立它。

:這隻能應用在普通檔案中,不能用在管道,符號連結和其他特殊檔案。

10.(1)$?儲存了一個命令,一個函數,或者一個指令碼的退出狀態代碼的值.

(2)$$儲存了指令碼運行時的進程ID值。

11.圓括弧【()】裡面的命令是在新的一個子shell中執行的。

代碼塊【花括弧】是匿名的函數,與函數不同的是,在代碼塊裡面的變數仍然能在指令碼後面的代碼訪問。

12.redirection重新導向

(1) command>&2 把命令command的標準指令碼(stdout)重新導向到標準錯誤(stderr)。command >2 會將command命令的輸出寫到檔案2中。&2代表stderr。

(2)command &>filename 把command的stdout和stderr重新導向到stderr。

13.

管道是通過子進程實現的

variable="initial_value"
echo "new_value" | read variable
echo "variable = $variable" #initial_value

14.

a=`ls -l`
echo $a #此時會省去空白符,所以下面的兩個運算式是有區別的
echo "$a"

15.

不同與許多其他的程式設計語言,Bash不以“類型”來區分變數。本質上bash變數是字串,但是根據環境的不同,bash允許變數有整數計算和比較。其中的決定因素時變數的值是不是只含有數字。

(1)declare - a #生命a是整數

16.對於位置參數$9之後的參數必須用括弧括起來。

17.輸出引號 echo "The name of this script is \"$0\". "

18.指令碼的最後一個參數

(1)lastarg=${!#}

(2)args=$#

lastarg=${!#}

19.basename filepath [suffix]  :strip directory and suffix from filenames

20. 。。。。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.