同makefile一樣,符號'#'被用作注釋,也就說shell在解析該指令碼時會忽略這一行,但是'#!'例外。
如果需要將多個命令一起執行,可以將這些命令放在同一行,使用分號分割即可,例如:
#!/bin/bash
date;who
date命令首先被執行,然後是who命令。
通常我們需要顯示一些資訊,可以使用echo命令來實現,例如:
#!/bin/bash
echo "welcome to bash"
預設情況下,echo命令會在呼叫後面新增乙個換行符。這裡使用了一對雙引號來引用乙個字串,類似地,不帶雙引號和帶單引號也能完成同樣的任務,例如:
#!/bin/bash
echo welcome to bash
#!/bin/bash
echo 'text in quote'
那麼這裡有什麼不同呢?
1. echo後面不帶引號時(包括單引號和雙引號),你就不能在輸出的字串中使用分號';',因為分號在shell中被用作命令分隔符,例如:
#!/bin/bash
echo hello;hello
分號後面的hello會被當作hello命令而被執行,而不是字串。
2. 使用單引號時,不會對其中的變數進行解析,例如:
#!/bin/bash
echo '$var'
會直接輸出$var,而echo $var(echo "$var")會對變數var進行解析,並返回其值。
printf命令,同c語言中的printf函式一樣,用於格式化輸出,例如:
#!/bin/bash
printf "hello world"
預設情況下,printf命令並不像echo命令那樣自動在末尾新增乙個換行符,需要我們自己手動新增。這裡再舉乙個print的例子:
#!/bin/bash
printf "%-5s %-10s %-4s\n" no name mark
printf "%-5s %-10s %-4.2f\n" 1 sarath 80.3456
printf "%-5s %-10s %-4.2f\n" 2 james 90.9989
printf "%-5s %-10s %-4.2f\n" 3 jeff 77.564
將會得到這樣的輸出結果:
no name mark1 sarath 80.35
2 james 91.00
3 jeff 77.56
shell程式設計《二》
一 if語句 if expressino then code block elif expression then code block else code block fi fi 比較整 數a 和b是否 相等 if a b 也 可 用 eq 判斷整 數a是否 大於整數 b if a gt b 比較...
shell程式設計 (二)
雜亂模組 上一次的結果碼 對指令碼進行檢測語法錯誤 bash n shell.sh 指令碼 bash x shell.sh 指令碼,單步執行 date s 顯示當前秒數 timedays 提前退出指令碼 exit stat 獲取檔案屬性 一 shell中實現算術運算 a 2 b 5 1 let a ...
shell程式設計 二
在shell程式中,資料用變數來儲存,使用變數時不需要宣告,預設所有變數型別為字串型別 這裡 和 的效果是一樣的.使用set設定位置引數.形如set ls l 這樣的命令則會把ls l的結果以此作為他的引數.環境變數 說明 home 當前使用者主目錄 path 用以搜尋命令的目錄列表,用 分隔 ps...