shell指令碼學習

2021-08-16 19:14:36 字數 1827 閱讀 9715

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鍵的上乙個按鍵 重定向 如果檔案不存在,將建立新的檔案,並將資料送至此檔案 如果檔案存在,則將資料新增在檔案後面 如果檔案不存在,同上,如果檔案存在,先將檔案...