shell指令碼基礎 語法

2022-09-15 19:51:16 字數 1947 閱讀 7272

一 變數

[root@t_foot-home2-zzz01 ~]# a=hello

[root@t_foot-home2-zzz01 ~]# echo $a

hello

[root@t_foot-home2-zzz01 ~]# echo $_world

hello_world

其實$a和$作用相同,但是為了防止字串在拼接時,計算機無法區分變數和拼接的字串,所以需要加上{}

二 提取命令的輸出

[root@t_foot-home2-zzz01 ~]# pwd

/root

[root@t_foot-home2-zzz01 ~]# echo $(pwd)

/root

三 條件賦值($)

1 $:是指如果var為空,那麼就輸出string的值,如果var不為空,那麼就輸出var的值

2 $:是指如果var為空,那麼就輸出string的值,並且把string的值賦給var,如果var不為空,那麼就輸出var的值

3 $:是指如果var為空,那麼就輸出錯誤資訊 -bash: var: string,如果var不為空,那麼就輸出var的值

4 $:和$相反,如果var為空,那麼列印var的值,如果var不為空,那麼就列印string的值

四 $((exp))

[root@t_foot-home2-zzz01 ~]# echo $((3+2))

5

五 模式匹配替換

$,$ 從右邊開始匹配

$,$ 從左邊開始匹配

$,$ 表示最短匹配,匹配到就停止

$,$ 表示最長匹配

萬用字元*:表示零個或多個任意字元

?:表示零個或乙個字元

[...]:表示匹配中括號裡面到字元

[!...]:表示不匹配括號裡面到字元

[root@t_foot-home2-zzz01 ~]# f=a.tar.gz

[root@t_foot-home2-zzz01 ~]# echo $

gz[root@t_foot-home2-zzz01 ~]# echo $

tar.gz

[root@t_foot-home2-zzz01 ~]# echo $

a[root@t_foot-home2-zzz01 ~]# echo $

a.tar

六 提取位元組

[root@t_foot-home2-zzz01 ~]# echo $

a.

獲取f從下標為0的位元組以後兩個位元組

[root@t_foot-home2-zzz01 ~]# echo  $

.tar.gz

提取f從下標為1的位元組之後到所有位元組

七 字串替換

$:將第乙個dir 替換為path

$:將全部dir 替換為 path

$:可計算出變數值$的長度

八 輸出重定向

echo "hello world" >> tempfile 將hello world複製到tempfile檔案中,再列印出來

九 輸入重定向

wc << flag

其本質就是把輸入到內容快取下來作為命令輸出

十 流程控制

if-then語句

if xx1 then

xx1s

elif xx2 then

xx2s

else 

xx3s

fi十一 case

case ... esac

十二 for

十三 while

十四 until

十五 break和continue

十六 test命令

參照連線 

shell 指令碼基礎語法

這句一般在 shell 指令碼的第一行。告訴作業系統,此指令碼的直譯器為 bin sh 這個可執行檔案。類似地,如果你的指令碼用 bash,ksh,解釋,第一行就應該是 bin bash bin ksh 注意 shell 指令碼對空格要求十分嚴格,關鍵字和符號之間必須加空格。1 字串判斷 str1 ...

Shell指令碼語法基礎

shell是linux下的乙個命令解析器,把一系列的命令序列寫入文字檔案就構成了shell指令碼 類似於windows中的批處理 bin sh echo something echo hello world echo hello mkdir tnt 符號 用來指定該指令碼檔案的解析程式。在上面例子中...

shell指令碼基礎語法(if 和 陣列)

條件判斷命令 test 或者 例 test 1 lt 4 判斷1 4 test語句的等價形式 1 lt 4 檔案測試符號 f 存在且是普通檔案 d 存在且是目錄 s 存在且位元組數大於0 r 存在且可讀 w 存在且可寫 x 存在且可執行 如 test d mydoc 判斷mydoc是否是目錄例子 1...