1、
exec 3>&1 #在當前shell環境中將檔案標識3與標準輸出相關聯(備份乙個stdout)
exec 3>&- #為shell後續**關閉檔案標識3
2、&>/dev/null解釋
:> 代表重定向到**,例如:echo "123" > /home/123.txt
:/dev/null 代表空裝置檔案
:2> 表示stderr標準錯誤
:& 表示等同於的意思,2>&1,表示2的輸出重定向等同於1
:1 表示stdout標準輸出,系統預設值是1,
所以">/dev/null"等同於 "1>/dev/null"
3、shell變數名使用的特殊字元:
$# 傳送給命令shell的引數序號 個數
$- 在shell啟動或使用set命令時提供選項
$? 上一條命令執行後返回的值
$$ 當前shell的程序號
$! 上乙個子程序的程序號
$@ 所有的引數,每個都用雙括號括起
$* 所有引數,用雙括號括起
$n 位置引數值,n表示位置
$0 當前shell名
$? 是上個命令列執行是否成功,成功為0
4、if判斷總結
條件表示式
檔案表示式
if [ -f file ] 如果檔案存在
if [ -d ... ] 如果目錄存在
if [ -s file ] 如果檔案存在且非空
if [ -r file ] 如果檔案存在且可讀
if [ -w file ] 如果檔案存在且可寫
if [ -x file ] 如果檔案存在且可執行
整數變數表示式
if [ int1 -eq int2 ] 如果int1等於int2
if [ int1 -ne int2 ] 如果不等於
if [ int1 -ge int2 ] 如果》=
if [ int1 -gt int2 ] 如果》
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<
字串變數表示式
if [ $a = $b ] 如果string1等於string2
字串允許使用賦值號做等號
if [ $string1 != $string2 ] 如果string1不等於string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 為空
if [ $sting ] 如果string 非空,返回0 (和-n類似)
5、read引數
#延遲五秒,沒有輸入將自動退出
read -p "
input a number:
" -t 5 number
6、陣列總結
array_name
=(value0 value1 value2 value3)
name[0]="zara"name[1]="qadir"
name[2]="mahnaz"
name[3]="ayan"
name[4]="daisy"
echo "first index: $"
echo "second index: $"
$./test.sh使用@ 或 * 可以獲取陣列中的所有元素,例如:first index: zara
second index: qadir
name[0]="zara"執行指令碼,輸出:name[1]="qadir"
name[2]="mahnaz"
name[3]="ayan"
name[4]="daisy"
echo "first method: $"
echo "second method: $"
$./test.shfirst method: zara qadir mahnaz ayan daisy
second method: zara qadir mahnaz ayan daisy
獲取陣列長度的方法與獲取字串長度的方法相同,例如:
# 取得陣列元素的個數length=$
# 或者
length=$
# 取得陣列單個元素的長度
lengthn=$
Shell 程式設計知識點
linux 的選項又分為短格式選項和長格式選項。command1 command2.不管command1命令是否執行成功,command2命令都執行。command1 command2.command1命令和command2命令同時執行 command1 command2.只在command1命令執...
shell 知識點備忘
與檔案存在與否的判斷 e 是否存在 f 是否為普通檔案 d 是否為目錄 s 是否為空的檔案 p 是否為管道檔案 b 是否為塊裝置檔案 c 是否為字元裝置檔案 l 是否為軟鏈結 s 是否socket檔案 與檔案許可權有關的判斷 r 是否有可讀的許可權 w 是否有可寫的許可權 x 是否有可執行許可權 u...
shell常用知識點
0 shell中if,while的條件語句怎麼寫 test和 字串比較 數字比較 g,l,e,n,q,t的組合 greater than,less than,equil,not equil,greater equil,less equil 1 shell的字串 str hello str hello...