shell編程–第二天

來源:互聯網
上載者:User

ls -l dir1 | wc -l .

 1。while 條件  ;  do  done //(())  []  test
2。until同上,僅僅是條件不成立的時候才執行
3。/dev/null : unix 黑洞。 用於清空檔案  cat /dev/null > xx    find -name a.txt 2>/dev/null
4。注意:陷阱題之continue跳出迴圈後,把列印的東東留在了緩衝區,結果一直都沒有列印出來。
5。命令列表 && && | | | | ,後一個命令是否執行依賴於前一個命令的成功與否。
6。語句塊{}: (ls "$1") && { echo "$1"  .......}
7。函數 1。function fun1{}  fun1(){}   注意:函數沒有傳回值,調用直接寫函數名即可。( )中不允許出現行參,只能為空白。    declare -f 查看所有滴函數
 shell的函數,對於shell來說是新的shell進程,如此傳參:fun1 1 2 3 ,$0永久不變,$1之後的位置參數在函數內是局部的,外依舊是主程式的位置參數。
8。shell編程是在命令的基礎上的,所以應該時刻想著以命令的格式來編寫代碼,不要搞錯聊。
9。函數中的return 是返回的是:返回碼,必須是int行,不能是其他的類型。最多255,0代表成果。如果val=$(fun),則取出來的是:函數所輸出的東西。
10。shell中,任何命令都是有返回碼的,而且必須有---因為預設就有。(以最後一句代碼作為傳回值)
11。加上( ) 表示在子shell中去執行,否則是在當前shell中執行。
12。如果非要函數有返回 ,那隻能使用全域變數了,沒別的辦法了。可是,走運了,函數中的變數預設就是全域性的,加了local修飾的變數才是函數的局部變數了。

       $( fun ) 取出來的是:echo列印出來的東西,並不是return 值。
13。普通的調用函數是不會啟動新的進程的。調用shell會啟動新進程的。a.sh exec a.sh (exec是不會建立新的進程的)
14。fork    ()    exec      source   ,這4種方式來進行執行子shell,前2個方式會建立立個shell程式,後2個則是在當前shell下進行的執行。

15。export到出變數,使變數能夠在子shell中起效。

16。在系統中,進程是顆樹,他們是具有關係的(父子爺。。。)

17.內建命令(用enable來查看):是在shell啟動時就已經被載入到記憶體中去的。如:pwd echo 外部命令:需要通過PATH來配置其外部程式。

18.jobs 查看背景程式,fg %n  bg %n  ctrl+ z 掛起.。 echo -E -e -n  建議使用 printf (注意:%s中間不能夠有空格,因為替換之後就成了2個參數了,因為中間有空格)

19.注意:shell編程的基礎是命令的集合,所以,他不像其他編程語音一樣的格式,他基本上都是通過空格來表達他的參數與識別。 這就是命令形式的編程。

20.eval:把字串當成是命令來使用。盡量不用,有風險。

21.set 重新設定位置參數。 set $(date) echo $2  , set -o      unset 刪除某個變數 

22. shift 把位置參數都做移 一位,原來$1的值就被丟棄了。呵呵,$0 永遠保持不變。

23.進程很多情況下是接到訊號結束的。呵呵

24.trap命令:指定當接受到訊號後將要採取的行動。  trap 命令 訊號整數       trap - SIGOUT -表示,用預設的響應來響應該訊號。

25.shell中 :冒號表示空語句,同時也表示邏輯真

26.$$ 進程號  $? 上一個命令的傳回值

27.exit n  ; 0 成功  1-255 錯誤資訊  126無許可權 127命令未找到  128別訊號打斷

28.find 路徑 選項 測試部分 動作部分 

29;用;可以分隔多個命令在同一行 ; 訊號:即中斷技術  ;  tar -cvf shell.tar *      tar -tf shell.tar   

30. $() ` ` 命令替換; 進程替換:  > 即重新導向      ; grep 選項 正則 檔案 |  路徑

31.特殊元素: ls -l | grep -E a[ [ :blank: ] ]        命令列,所有特殊字元都要轉義。 或者用 " ",就可以不用/來轉義了。

32. AWK 工具:== gawk  ,awk -F '{ print $1 }' /etc/passwd    BEGIN{} /正冊匹配即執行後門大括弧/{} END{} my.awk檔案。前後塊,各執行一次。中間則一行執行一次。正則部分,匹配成功,就那個執行{}。

33. 圖形話工具: dialog  gdialog 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.