學習之shell指令碼

來源:互聯網
上載者:User

標籤:之間   指令碼   var   border   echo   單引號   chm   index   bash   

第一行:#!/bin/bash  --> #! 標記指令碼的解譯器

指令碼: #!/bin/bash

    echo "hello world"

賦予執行許可權 chmod +x ./test.sh

執行指令碼:./test.sh

定義變數時不需要 $ 符號 :td=‘date "+%y%m%d"‘

1.變數名和符號之間不能有空格
2.首個字元必須為字母
3.中間不能有空格,可以使用劃線(_)
4.不能使用標點符號和 bash 中的關鍵字

除了顯示賦值,還可用語句直接給變數賦值

for file in ‘ls /etc‘ 將 /etc目錄下的檔案名稱迴圈出來

使用一個定義過的變數,只需在變數名前加上 $ 符號即可 echo $td 或 echo ${td}

對同一個變數名,可以進行二次賦值 eg: td=‘date "+%m%d"‘

唯讀變數:readonly 定義變數為唯讀變數,變數值不可更改

url="http://www.baidu.com"

readonly url

url="http://www.tx.com" --> 報錯

刪除變數: unset variable_nae,不能刪除唯讀變數

shell存在三種變數:①局部變數:指令碼或命令中定義,僅在當前指令碼有效
          ②環境變數:所有程式有效
          ③shell變數:由shell程式設定的變數,有局部也有環境

單引號字串中不能有變數,不能做字元轉義,雙引號可以實現。

your_name="world"

拼接字串 greeting="hello,${your_name} !" 

擷取字串長度 ${#greeting} 

提取1—4的字串,下標從0開始 ${#greeting:1:4} 

尋找字串 $(expr index "${greeting}" world)

反引號用於命令替換:td=`date "+%y%m%d"` 等同於 $(date "+%y%m%d")

./test.sh 1 2 3

執行的檔案名稱:$0  --> ./test.sh

第一個參數為:$1  --> 1

第二個參數為:$2  --> 2

第三個參數為:$3  --> 3

參數的個數為:$# --> 3

指令碼啟動並執行當前進程ID:$$ -->8010

顯示所有傳遞的參數:$*  -->1 2 3

$* 與 [email protected] 的區別:$* 等價於 “1 2 3” ,相當於傳遞了一個參數,[email protected] 等價於 “1” “2” “3” 相當於傳遞了三個參數

variable_name

學習之shell指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.