Shell學習筆記,shell指令碼

來源:互聯網
上載者:User

Shell學習筆記,shell指令碼
一、變數的命名

變數名必須以字母或底線開頭,由字母、數字、或底線組成,變數名的長度不能超過255個字元。

二、變數的分類

1. 使用者自訂變數

2. 環境變數

3. 位置參數變數

4. 預定義變數

三、使用者自訂變數

使用者自訂變數是“局部變數”,只能在當前的Shell中生效

1. 定義變數

變數名=變數值

樣本:

注意:等號前後不能有空格,否則會出現以下錯誤提示:

2. 變數調用

$變數名 或 ${變數名}

樣本:

3. 變數疊加

樣本:

或:

4. 刪除變數

unset 變數名

樣本:

5. 查看變數

1) env:查看所有的環境變數

2) set:查看所有的變數(包括使用者自訂變數)

四、環境變數

環境變數是“全域變數”,在當前Shell和這個Shell的所有子Shell中生效

1. 設定環境變數

export 變數名=變數值

變數名=變數值

export 變數名

樣本:

注意:設定環境變數時,建議使用大寫,避免與使用者自訂變數或系統命令(都是小寫)衝突。

2. 刪除環境變數,環境變數調用,查看環境變數

使用者自訂變數的使用方式相同

3. 設定PS1環境變數

PS1環境變數會影響使用者提示符資訊,樣本如下:

五、位置變數1. $n

n為數字,$0代表命令本身,$1-$9代表第一到第九個參數,十以上的參數需要用大括弧包含,如${10}。

樣本:

#!/bin/basha=$1b=$2sum=$(($a +$b))echo $sum
2. $*

這個變數代表命令列中所有的參數,$*把所有的參數看成一個整體

#!/bin/bashfor i in "$*"do    echo $idone#運行:test.sh 1 2 3#輸出:1 2 3#解釋:$*中的所有參數被看成是一個整體,所以這個for迴圈只會迴圈一次
3. $@

這個變數也代表命令列中所有的參數,不過$@把每個參數區分對待


#!/bin/bashfor i in "$@"do    echo $idone
#運行:test.sh 1 2 3#輸出:
1 2 3#解釋:$@中的每個參數被看成獨立的,所以這個for迴圈會迴圈多次
4. $#

這個變數代表命令列中的所有參數的個數

#!/bin/bashecho $##運行:test.sh 1 2 3#輸出:3
六、預定義變數1. $?

最後一次執行的命令的返回狀態。如果這個值為0,則說明上一個命令執行正確;如果這個值不為0,則代表上一個命令執行的錯誤碼。

樣本:

2. $$

當前進程的進程號(PID)

樣本:

3. $!

後台啟動並執行最後一個進程的進程號(PID)

#!/bin/bashfind /root -name "test.sh" &echo $!
七、read命令

接受鍵盤輸入

1. 參數說明

-p "提示資訊": 在等待read輸入時,輸出的提示資訊

-t 秒數:read命令會一直等待使用者輸入,使用此參數可以指定等待時間

-n 字元數:read命令只接受指定的字元數,就會繼續執行

-s : 隱藏輸入的資料,適用於機密資訊的輸入

2. 樣本
#!/bin/bashread -p "please input username:" usernameread -p "please input password:" -s passwordecho -e "\n"read -p "please input sex[F/M]:" -n 1 sexecho -e "\n"echo "Welcome $username[$sex]"

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.