shell版本
sh:bourne shell,最初unix的shell。
csh:c shell。
ksh:korn shell。
bash:bourne again shell。 linux預設shell。
tcsh:c shell的擴充套件。
pdksh:ksh不免費,這個免費。
echo -n "date and time is:" -n不換行。
echo "your name is: `whoami` " ``會將其中的字串解釋成命令。
shell指令碼執行方式
bash< ***.sh:從***.sh中讀取命令列並執行。
bash ***.sh:可帶引數。
chmod a+x ***.sh:使***.sh對所有使用者有「執行」許可權。輸入指令碼名可以直接執行。
特殊字元
雙引號:除$美元, `倒引號, \反斜槓之外,其餘都視作普通字元。
單引號:單引號內部的字元都視作普通字元。
倒引號:左上角esc下面的鍵,內部字串被解釋為命令。shell先執行,並以其結果代替整個倒引號部分。
反斜槓:把特殊字元變成普通字元,阻止shell把其後面的字元解釋為特殊字元。
i/o重定向
輸入:《作用是把命令的stdin重定向到指定檔案,從檔案中讀取內容作為輸入。
輸出:>作用是把命令的stdout重定向到檔案,執行的結果寫入到檔案中。執行多個命令到同一檔案,前面命令會被覆蓋。
輸出附加:>>,附加到檔案後面,不會破壞原檔案內容。
即時檔案:<<, 由"<<",一對標記符及其間的若干輸入符組成。允許把shell程式的輸入行定向到乙個命令中。?????
注釋:#開始表示注釋。#!後面表示shell的絕對路徑。#! /bin/csh #! /bin/bash
命令執行操作符
順序執行:可以執行一條命令,也可以執行多條,以「;」分開,前面執行失敗不影響後面繼續執行。
邏輯與: 命令1&&命令2,命令1成功,繼續命令2。否則不繼續。執行成功返回0,否則非0。
邏輯或: 命令1 || 命令2,執行1,不成功執行2;否則,1成功,則不執行2。
變數變數名區分大小寫。賦給變數的值如果有空格,製表符或換行,用雙引號。同一變數,可以一次存放int,另一次存放string。
通過美元符號訪問,如yourname=$myname;
內部變數
$#(傳給程式的引數個數,不包括本身)
$?(最後一條命令完成的執行結果)
$0*(自己的名字)
$*(傳給程式的所有引數的字串,不包括本身)
環境變數
home:/home/username
logname:使用者的註冊名,由linux自動設定。它是系統與使用者互動的名字。
mail:使用者系統郵箱路徑,/var/spool/mail/username
path:shell從中查詢命令的目錄列表。
ps1:定義了使用者的主提示符是如何構成的。如\u@\h:\w#對應比如wgsupport@firebox:~#。[\u@\h \w]\$對應[ryo@t430-lap documents]$。
pwd:使用者當前工作目錄的路徑。
shell:使用者當前使用的shell,也指出了使用者shell解釋程式放在什麼地方。
term:使用者終端型別。
位置引數
shell指令碼被別人呼叫時可以傳入引數,第乙個$1,第二個$2直到$9。
用set可以設定或重置引數。
當引數大於9時,用shift左移引數。shift移動乙個,shift 4移動4個。
Linux shell程式設計個人學習小總結
本文只是個人在學習shell程式設計的總結,並不是系統的總結。一 在進行變數賦值時,變數名前不需要新增 例如 a 2 a whomai 同時形如上 一般的賦值 整型 字串等 需要加雙引號 通過外部程式賦值需要需要用 命令 二 要注意一些陣列賦值及陣列在for迴圈中使用的情況。發現好像沒有什麼其他需要...
Linux Shell程式設計快速入門
修改檔案的許可權位,使指令碼檔案成為可執行程式 例如指令碼檔案為test.sh 則chmod x test.sh 增加可執行標誌位 test.sh 執行指令碼注意,執行指令碼的時候需要使用.test.sh啟動指令碼而不是test.sh,如果沒有指定目錄的話,對於可執行檔案來說,系統只會在系統path...
linux shell程式快速入門
1.shell的基本型別 表示式型別 使用關鍵字expr申明。宣告格式 var expr a b 坑點 一定要注意空格,某些地方空格省略會造成語法錯誤,還有運算字元的轉義,比如 數字型別 變數等號右邊使用數字宣告。宣告格式 a 10 相關運算子 eq 是否相等,ne 是否不相等,gt 檢測左邊的數是...