Shell指令碼程式設計(一)

2022-08-22 20:09:14 字數 1805 閱讀 1450

變數的型別

**` ** 或者 **$() **

由 反引號 括起來的也是一條命令, shell 先執行該命令, 然後將輸出結果立刻代換到當前命令列中。如下:

# date 日期函式

[czk@localhost ~]$ date=`date`

[czk@localhost ~]$ echo $date

sat may 18 23:45:47 edt 2019

# $() 方式

[czk@localhost ~]$ date=$(date)

[czk@localhost ~]$ echo $date

sat may 18 23:47:20 edt 2019

主要是用萬用字元就將檔案匹配替換

* :匹配0個或者多個任意字元

?:匹配乙個任意字元

[若干字元] : 匹配方括號中任意乙個字元的一次出現

$(())

這個是用來進行算術運算, $(()) 中的shell 變數取值將轉換成整數, 如下:

# $(())中只能用+-*/和()運算子,並且只能做整數運算。

[czk@localhost ~]$ num=99

[czk@localhost ~]$ echo $(($num+1))

100

\在shell中被用作轉義字元用於去除緊跟其後的單個字元的特殊意義,

比如建立乙個"$ $" 的檔案

[czk@localhost ~]$ touch \$\ \$

[czk@localhost ~]$ ls

$ $ test.sh

還有乙個字元也比較特殊, 它沒有說明特殊含義, 但是用來做檔名也是比較麻煩的, 那就是-號。

它會把和它連在一起的字元, 當成了命令列引數的命令選項了,如果你硬要用 它來作檔名, 可以有如下兩種方式:

[czk@localhost ~]$ touch ./-hi

[czk@localhost ~]$ ls

$ $ -hi test.sh

or

[czk@localhost ~]$ touch -- -hello

[czk@localhost ~]$ ls

$ $ -hello -hi test.sh

shell 指令碼中的單引號和雙引號一樣都是字串的界定符,而不是字元的界定符, 單引號用於儲存引號內所有字元的字面值, 即使引號內的\和回車也不例外,但是字串中不能出現單引號。如果引號沒有配對就輸入回車,shell會給出續行提示符,要求使用者把引號配上對。

[czk@localhost ~]$ echo '$shell'

$shell

被雙引號用括住的內容,將被視為單一字串。它防止萬用字元擴充套件,但允許變數擴充套件。這點與單引號的處理方式不同。

[czk@localhost ~]$ date=$(date)

# 如果是雙引號, 還會繼續展開裡面的內容

[czk@localhost ~]$ echo "$date"

sun may 19 02:31:05 edt 2019

[czk@localhost ~]$ echo '$date'

$date

Shell指令碼程式設計入門(一)

最近在學shell,記錄一下。if語句的使用 1.判斷兩個引數大小 bin sh a test about if statement a 10 b 20 if a eq b then echo parameter a is equal to parameter b elif a le b then ...

shell指令碼程式設計高階(一)

可以巢狀 分支if 判斷條件 then 條件為真的分支 fiif 判斷條件 then 條件為真的分支 else 條件為假的分支 fiif 判斷條件1 then 條件1為真的分支 elif 判斷條件2 then 條件2為真的分支 elif 判斷條件3 then 條件3為真的分支 else 以上條件都為...

Shell 指令碼程式設計

1 執行shell的方法 指定shell bin sh 由sh執行指令碼 指令碼總是由sh解釋 顯示呼叫shell sh scriptname 在當前shell中執行指令碼 profile profile是可執行的 ksh profile profile是不可執行的 改變當前的執行環境責應輸入.pr...