shell 基本語法

2021-10-03 07:12:58 字數 4103 閱讀 4439

1,環境變數:環境變數可以從父程序傳給子程序,即shell的環境變數可以傳遞給fork出來的子程序

檢視當前shell的環境變數:

command:

itcast$ printenv		//printenv  中的"env"是environment variable 的縮寫
2,本地變數:只存在於當前程序

檢視當前shell的所有變數(包括本地變數和環境變數)和函式:

command:

itcast$ set                    //set 這個單詞有設定,集合等多重含義
總結: 環境變數是任何程序都有的概念,而本地變數是shell特有的概念。

3,定義變數:在shell中環境變數和本地變數的定義和用法類似。

command:

itcast$ varname=value		/

/注意等號之間不能有空格,否則會被shell解釋成命令和命令列引數

乙個變數定義後僅存於當前shell程序中,它是本地變數。 使用export 將本地變數匯出為環境變數。

command:

itcast$ export varname=value

itcast$ varname=value

itcast$ export varname

4,刪除變數

command:

itcast$ unset varname
5,使用變數:shell變數的本質上是乙個字串,shell變數不需要先定義後使用,如果對乙個沒有定義的變數進行取值得到的是乙個空字串。

command:

itcast$ echo

$varname

如果乙個變數叫做varname,用 』 varname 』 可以表示它的值,在不引起歧義的情況下也可以用varname表示它的值

" * ",匹配0個或n個任意字元

」 ?「,匹配1個任意字元

[ ],匹配方括號中的字串行

command:

itcast$ ls /dev/ttys*			//檢視/dev目錄下的以tyys為首的所有檔案

itcast$ ls ch0?.doc //檢視當前目錄中以ch0為首和檔名長度為4,並且以.doc為字尾的檔案

itcast$ ls ch0[0-2].doc //檢視當前目錄中是否有名為「ch00,ch01,ch02」並以.doc為結尾的檔案

itcast$ ls ch[012]

[0-9].doc //檢視當前目錄中以ch為首和檔名長度為4,以.doc為結尾,並且該檔名的第3位是「0,1,2」,和第4位是「0~9」集合中的任意乙個數字的檔案

萬用字元所匹配的檔名將由shell負責展開,即引數在傳遞給程式之前就已經展開。

例如:上述ls ch0[012].doc命令,如果當前目錄下有ch00.doc和ch02.doc,則傳給ls命令的引數實際上是這兩個檔名,而不是乙個匹配字串。

命令代換:即shell先執行該命令,然後將命令的輸出結果替換到當前命令列中。

例如:使用 「 ` " 實現命令代換, 定義乙個變數變數儲存data命令的輸出

command:

itcast$ value=

`date

` //反引號括起來的也是一條命令

itcast$ echo

$value

或 使用()實現命令代換

command:

itcast$ value=(date) 		 //小括號號括起來的也是一條命令

itcast$ echo

$value

又或 結合使用

command:

itcast$ echo $`

date

`

itcast$ echo

$(date

)

1,使用(()

),用於

算術運算

中,((

))中的

shel

l變數取

值將變換

成整數。

(( )), 用於算術運算中, (( )) 中的shell變數取值將變換成整數。

(()),用

於算術運

算中,(

())中

的she

ll變數

取值將變

換成整數

。(( ))中只能使用 「+」,「-」, " * ", " / 「,」 ( ) " 這5種運算子,且只能做整數運算。

command:

itcast$ value=45

itcast$ echo

$((value +3))

//等價於 echo

$(($value +3))

,echo $[value + 3], echo $[

$value + 3]

2,使用$[base #n], 其中base 為進製,n按照base進製解釋,然後再進行十進位制運算。

command:

itcast$ echo $[2#10+11]

itcast$ echo $[8#10+11]

itcast$ echo $[16#10+11]

轉義字元: 「 \ " 反斜槓 在shell 中被用作轉移字元,用於去除跟隨其後的單個字元的特殊含義(回車除外)

例如:command:

itcast$ echo

$shell //取出shell變數中的值

/bin/bash

itcast$ echo \$shell //去除$符號的特殊含義

$shell

itcast$ echo \\ //列印 "\" 字元

\itcast$ touch \$\ \$ //建立乙個名為 $ $ 的檔案,($ $ 之間存在空格)

建立以-開頭的檔案,即使使用轉義字元也報錯,因為liunx 將-號開頭的檔名當成touch命令的選項。

如果非要建立以 - 開頭的檔案有2種方法

command:

itcast$ touch ./-test.sh	//linux中的 ./ 代表不完整的路徑

itcast$ touch -- -test.sh //

轉義字元」 \ 「 還有一種用法,在\後面敲回車表示續行

command:

itcast$ ls \

> -l //ls-l命令的輸出

單引號:字串的界定符,用於保持引號內字串的字面值。

例如:command:

itcast$ echo

'$shell' //$符取值失敗

$shell

itcast$ echo

'abc\ //此處鍵入回車

> de' //再按一次回車結束命令

abc\ //輸出結果如下

de

雙引號:被雙引號括起來的內容,將被視為單一字串。它防止萬用字元擴充套件,但是允許變數進行擴充套件。

例如:command:

itcast$ date=

$(date

)itcast$ echo

"$date" //輸出結果:2023年 02月 27日 星期四 20:32:59 cst

itcast$ echo

'$date' //輸出結果:$shell

itcast$ var=200

itcast$ echo

$var //輸出結果:200

itcast$ echo

'$var' //輸出結果:$var

itcast$ echo

"$var" //輸出結果:200

Shell基本語法

二 引數傳遞 三 運算 四 邏輯運算子 五 條件分支 六 迴圈控制 七 函式 八 shell 輸入 輸出重定向 九 shell 檔案包含 1.變數命名之間不能有空格 2.使用變數需要使用 符號,最好使用 來規定變數的邊界,可以在字串中直接使用變數 3.唯讀變數用 readonly 修飾 4.刪除變數...

shell 基本語法

將os命令堆積到可執行的檔案裡,由上至下的順序執行文字裡的os命令 就是指令碼了.再加上些智慧型 條件 流控 控制,就變成了智慧型化指令碼了.part1 為何要有變數 程式的執行就是一些列狀態的變數 用變數值的變化去表示 part2 變數命名規則 以字母或下劃線開頭,剩下的部分可以是 字母 數字 下...

shell基本語法

shell基本語法 是乙個約定的標記,他告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種shell shell變數 定義變數 num 5 使用變數時要在變數名前加乙個 例 echo num 注意 等號的兩邊不能有空格 命名只能使用英文本母,數字和下劃線,首字元不能以數字開頭。中間不能有空格,可以...