shell學習
對於從事軟體工作的兄弟,linux下會寫shell指令碼是非常重要
#!/bin/sh
定義使用/bin/sh來解釋執行,#!是特殊的表示符,/bin/sh是此解釋此指令碼路徑
還有#!/bin/bash
hell 中的全域性變數有以下幾個:
$#: 執行 shell 指令碼時的命令列引數,不包括指令碼本身
$?: 執行上一條 shell 命令的返回值
$0: shell 指令碼程式自身的名稱
使用者自定義變數規則:
首個字元必須是(a~z,a~z),可下劃線(——)不能空格,不能使用符號標點,不能使用 shell 裡的關鍵字
test命令:測試條件表示式(字串測試、整數測試、邏輯測試、檔案測試)
字串測試:
test –n string
#字串的長度非零
test –z
string
#字串的長度是否為零
test string1=string2 #字串是否相等,若相等返回true
test string1!=string2 #字串是否不等,若不等反悔false
整數測試:
test int1 -eq int2
#判斷兩個數是否相等
test int1 -ne int2
#判斷兩個數是否不相等
test int1 -gt int2
#判斷整數 1 是否大於整數 2
test int1 -ge int2
#判斷整數 1 是否大於等於整數 2
test int1 -lt int2
#判斷整數 1 是否小於整數 2
test int1 -le int2
#判斷整數 1 是否小於等於整數 2
邏輯測試
if test
#表示式為真
if test !
#表示式為假
test 表示式1 –a 表示式2 #兩個表示式都為真
test 表示式1 –o 表示式2 #兩個表示式有乙個為真
test 表示式1 ! 表示式2 #條件求反
二:shell指令碼的條件判斷-命令成功或失敗,條件表示式為真還是假;
if 表示式:
if 表示式
then
fiif 表示式1
then
else
fiif 表示式1
then
cmd1
elif
cmd2
...else
cmd4
ficase string in
strl)
命令串1;;執行
str2)
命令串2;;執行
esac(case的反著寫)
forvar
docmd
done
for i in var
docmd
done
while
條件表示式
do命令
done
shell指令碼中重複功能用函式封裝
function 函式名
{...
}shell中
echo
#顯示文字
exit
#推出shell指令碼或當前程序
sleep
#暫停expr
#命令可以實現數值運算、數值或字串比較、字串匹配、字串提取、字串長度計算等功能
break
#強制推出當前迴圈
continue #推出本次迴圈
shell 指令碼學習
case var in pattern statement esac case 的指令碼語法是雙分號結尾的。sed e s i.86 i386 查詢替換。sed 流編輯器 將輸入流中的i.86替換成i386。是個萬用字元。輸入流的形式可能是 管道,檔案。shell d mkdir p 指令碼的條件執...
shell指令碼學習
shell 學習 1.shell 解釋型語言,有很多種直譯器。預設是 bin bash。shell指令碼第一行要寫 bin bash 2.shell指令碼執行的方法 1 sh sh 2 chmod a x sh sh 注意,一定要寫成.sh,而不是 sh。執行其它二進位制的程式也一樣,直接寫 sh,...
shell指令碼學習
反引號 反引號是命令替換,命令替換是指shell可以先執行中的命令,將輸出結果暫時儲存,在適當的地方輸出。語法 command 反引號是tab鍵的上乙個按鍵 重定向 如果檔案不存在,將建立新的檔案,並將資料送至此檔案 如果檔案存在,則將資料新增在檔案後面 如果檔案不存在,同上,如果檔案存在,先將檔案...