1. 程式必須以下面的行開始:
#!/bin/bash
符號#!用來告訴系統它後面的引數是用來執行該檔案的程式。在這個例子中我們使用/bin/sh來執行程式。(可以執行echo $shell來看你的系統是使用那一類shell, 比如ubuntu使用的是/bin/bash,則第一行寫成#!/bin/bash)
2.使用#來新增注釋
3.對變數進行賦值:
#對變數賦值(注意等號前後不能有空格,因為加空格後a被認為是命令名而不是乙個變數):
a="hello world"
# 現在列印變數a的內容:
echo "a is:"
echo $a
#可以使用花括號來告訴shell我們要列印的是num變數:
num=2
echo "this is the $nd"
這將列印: this is the 2nd
let num=num+1
echo $num
列印: 3
4.grep 'pattern' file: 在檔案內搜尋字串比如:grep 'searchstring' file.txt
5.販毒案斜線(`)
反短斜線
使用反短斜線( ` )可以將乙個命令的輸出作為另外乙個命令的乙個命令列引數。
6.if條件語句
#!/bin/sh
if [ "$shell" = "/bin/bash" ]; then
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but $shell"
fi7.快捷操作符
[ -f "/etc/shadow" ] && echo "this computer uses shadow passwords"
這裡 && 就是乙個快捷操作符,如果左邊的表示式為真則執行右邊的語句。
8.local
作用:一般用於shell內區域性變數的定義,多使用在函式內部
關於區域性變數和全域性變數:
(1)shell 指令碼中定義的變數是global的,作用域從被定義的地方開始,一直到shell結束或者被顯示刪除的地方為止。
(2)shell函式定義的變數也是global的,其作用域從 函式被呼叫執行變數的地方 開始,到shell或結束或者顯示刪除為止。函式定義的變數可以是local的,其作用域侷限於函式內部。但是函式的引數是local的。
(3)如果區域性變數和全域性變數名字相同,那麼在這個函式內部,會使用區域性變數。
9.echo 命令
-n 不換行輸出
10.seq命令
產生從某個數到另外乙個數之間的所有整數
11.rm rf *
刪除當前目錄下所有的檔案,一般情況下用不到這個命令,這個命令非常危險,刪除後不能恢復。
12.xargs 命令
給命令傳遞引數的乙個過濾器
13.find命令
find [查詢目錄] [引數] [匹配模式][引數][匹配模式]
例如:find . -name "*.sh" 查詢在當前目錄(及子目錄)下以sh結尾的檔案;
-type 是find命令的乙個引數:
-type:查詢某一型別文件
b:塊裝置文件
d:目錄
c:字元裝置文件
p:管道文件
l:符號鏈結文件
f:普通文件
14.linux 三劍客:grep,awk,sed
grep 查詢;
awk資料分析並生成文字
linux sed 命令是利用指令碼來處理文字檔案。
sed 主要用來自動編輯乙個或多個檔案、簡化對檔案的反覆操作、編寫轉換程式等。
15.while read line
dodone < file
read通過輸入重定向,把file的第一行所有的內容賦值給變數line,迴圈體內的命令一般包含對變數line的處理;然後迴圈處理file的第二行、第三行。。。一直到file的最後一行。還記得while根據其後的命令退出狀態來判斷是否執行迴圈體嗎?是的,read命令也有退出狀態,當它從檔案file中讀到內容時,退出狀態為0,迴圈繼續驚醒;當read從檔案中讀完最後一行後,下次便沒有內容可讀了,此時read的退出狀態為非0,所以迴圈才會退出。
16.cut
使用特定的規則切分檔案內容並顯示出來,命令格式cut file "m,n"
。
Ubuntu shell 程式設計
開頭 bin sh 用來告訴系統,用 bin sh來執行程式。加許可權 chmod x filename 有的使用者還要更改檔案使用者為執行使用者 如 chown hadoop hadoop filename 之後才能用 filename執行 指令碼中可以加注釋,前面用 shell 中命令和系統中輸...
ubuntu shell 程式設計學習
1.開頭 bin bash 這句話必須放在檔案的第一行,符號 用來告訴系統它後面的引數是用來執行該檔案的程式。可以執行echo shell來看你的系統是使用那一類shell,比如ubuntu使用的是 bin bash,則第一行寫成 bin bash 進行shell程式設計時,以 開頭的句子表示注釋,...
初學Ubuntu shell程式設計
1 shell介紹 shell是使用者與核心之間的橋梁,也可以當作linux中的程式語言。shell與使用者互動的模式 在互動環境下,每次執行一條命令 通過編寫shell指令碼的方式 2 shell的編寫 shell直譯器 直譯器 eg bin bash shell的變數型別 環境變數 shell環...