2.Shell變數
阿新 • • 發佈:2022-03-27
目錄
Shell變數
linux系統變數
#通過命令獲取shell變數
set
自定義變數
-
基本語法
- 定義變數:變數=值
- 撤銷變數:unset 變數
- 宣告靜態變數:readonly變數,注意:不能unset
-
命名規則
- 變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,環境變數名建議大寫。
- 等號兩側不能有空格
- 在bash中,變數預設型別都是字串型別,無法直接進行數值運算。
- 變數的值如果有空格,需要使用雙引號或單引號括起來。
-
Demo
#定義變數A,當重新執行A=6時,則會覆蓋原值 A=5 #輸出 echo $A #刪除變數 unset A #宣告靜態的變數B=2,不能unset readonly B=2 #變數預設型別都是字串型別,無法直接進行數值運算 C=1+2 echo $C #會輸出1+2 #變數的值如果有空格,需要使用雙引號或單引號括起來 D="Hello Word" #可把變數D提升為全域性環境變數,可供其他Shell程式使用 export D
其他變數
$n
- 基本語法
功能描述:n為數字,$0代表該指令碼名稱,$1-$9代表第一到第九個引數,十以上的引數,十以上的引數需要用大括號包含,如${10}
-
Demo
輸出該指令碼檔名稱、輸入引數1和輸入引數2 的值
#建立 touch parameter.sh #編輯 vim parameter.sh #獲取 #!/bin/bash echo "$0 $1 $2" #執行 ./parameter.sh p1 p2 #輸出 parameter.sh p1 p2
$#
-
基本語法
功能描述:獲取所有輸入引數個數,常用於迴圈。
-
Demo
獲得引數數量
vim parameter.sh #!/bin/bash echo "$0 $1 $2" #新增如下 echo $# #執行 sh parameter.sh p1 p2 #輸出 parameter.sh p1 p2 2#有P2 P2兩個引數
$* | $@
-
基本語法
- $* (功能描述:這個變數代表命令列中所有的引數,$*把所有的引數看成一個整體)
- $@ (功能描述:這個變數也代表命令列中所有的引數,不過$@把每個引數區分對待)
兩者區別見...
-
Demo
vim parameter.sh #!/bin/bash echo "$0 $1 $2" echo $# #新增如下 echo $* echo $@ #執行 sh parameter.sh p1 p2 #輸出 parameter.sh p1 p2 2#有P2 P2兩個引數 p1 p2 p1 p2
-
區別?
$?
-
基本語法
功能描述:最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上一個命令正確執行;如果這個變數的值為非0(具體是哪個數,由命令自己來決定),則證明上一個命令執行不正確了。
-
Demo
#執行一個正確的變數命名的命令 A=1 #執行 $? #輸出 0 #說明上一次執行成功 #執行一個錯誤的變數命名的命令 A = 1 #帶空格 #執行 $? #輸出 !0 #說明上一次執行失敗