1.常用系統變數
$home、
$pwd、
$shell、
$user等
展示如下:
[root@bigdata shell]# echo $home
/root
[root@bigdata shell]# echo $pwd
/opt/shell
[root@bigdata shell]# echo $shell
/bin/bash
[root@bigdata shell]# echo $user
root
1.基本語法
(1)定義變數:變數=值
(2)撤銷變數:unset 變數
(3)宣告靜態變數:readonly變數,注意:不能unset
2.變數定義規則
(1)變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,環境變數名建議大寫。
(2)等號兩側不能有空格
(3)在bash中,變數預設型別都是字串型別,無法直接進行數值運算。
(4)變數的值如果有空格,需要使用雙引號或單引號括起來。
3.案例實操
(1)定義變數a
[root@bigdata shell]$ a=
5[root@bigdata shell]$ echo $a
5
(2)給變數a重新賦值
[root@bigdata shell]$ a=
8[root@bigdata shell]$ echo $a
8
(3)撤銷變數a
[root@bigdata shell]$ unset a
[root@bigdata shell]$ echo $a
(4)宣告靜態的變數b=2,不能unset
[root@bigdata shell]$ readonly b=
2[root@bigdata shell]$ echo $b
2[root@bigdata shell]$ b=
9-bash: b: readonly variable
(5)在bash中,變數預設型別都是字串型別,無法直接進行數值運算
[root@bigdata ~
]$ c=1+
2[root@bigdata ~
]$ echo $c1+
2
(6)變數的值如果有空格,需要使用雙引號或單引號括起來
[root@bigdata ~
]$ d=huan huan
-bash: world: command not found
[root@bigdata ~
]$ d=
"huan huan"
[root@bigdata ~
]$ echo $a
huan huan
(7)可把變數提公升為全域性環境變數,可供其他shell程式使用
export 變數名
[root@bigdata shell]$ vim helloworld.sh
在helloworld.s**件中增加echo $b
#!
/bin/bash
echo "helloworld"
echo $b
[root@bigdata shell]$ .
/helloworld.sh
helloworld
發現並沒有列印輸出變數b的值。
[root@bigdata shell]$ export b
[root@bigdata shell]$ .
/helloworld.sh
helloworld
2
1.基本語法
$n (功能描述:n為數字,$0代表該指令碼名稱,2.案例實操$1 —— $ 9代表第一到第九個引數,十以上的引數,十以上的引數需要用大括號包含,如$),有幾個引數就輸出幾個引數,多餘引數不影響指令碼執行,但不會將引數輸出
(1)輸出該指令碼檔名稱、輸入引數1和輸入引數2 的值
[root@bigdata shell]$ touch parameter.sh
[root@bigdata shell]$ vim parameter.sh
#!/bin/bash
echo "$0 $1 $2"
[root@bigdata shell]$ chmod 777 parameter.sh
[root@bigdata shell]$ .
/parameter.sh cls xz
./parameter.sh cls xz
1.基本語法
$ # (功能描述:獲取所有輸入引數個數,常用於迴圈)。
2.案例實操
(1)獲取輸入引數的個數
[root@bigdata shell]$ vim parameter.sh
#!/bin/bash
echo "$0 $1 $2"
echo $#
輸入幾個引數就顯示幾個引數,哪怕是設定了兩個引數,當你輸出了三個引數時,也會顯示三個引數
[root@bigdata shell]$ chmod 777 parameter.sh
[root@bigdata shell]$ .
/parameter.sh cls xz
parameter.sh cls xz
2
1.基本語法
$ * (功能描述:這個變數代表命令列中所有的引數,$*把所有的引數看成乙個整體)
$ @ (功能描述:這個變數也代表命令列中所有的引數,不過$@把每個引數區分對待)
2.案例實操
(1)列印輸入的所有引數
[root@bigdata shell]$ vim parameter.sh
#!/bin/bash
echo "$0 $1 $2"
echo $#
echo $*
echo $@
[root@bigdata shell]$ bash parameter.sh 123
parameter.sh 123
1231
23
1.基本語法
$? (功能描述:最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上乙個命令正確執行;如果這個變數的值為非0(具體是哪個數,由命令自己來決定),則證明上乙個命令執行不正確了。)
2.案例實操
(1)判斷helloworld.sh指令碼是否正確執行
[root@bigdata shell]$ .
/helloworld.sh
hello world
[root@bigdata shell]$ echo $?
0
shell變數以及如何使用變數
shell變數 變數 記憶體空間 增加指令碼的靈活性,適用性 型別 自定義變數 環境變數 path 特殊變數 自定義變數 1 宣告變數 變數名稱 變數值 變數名稱規範 只能由數字 字母 下劃線組成 不能以數字開頭 root shell name tom 2 呼叫變數的值 變數名稱 變數名稱後緊跟數字...
shell變數賦值以及使用
1 變數賦值 定義變數時,變數名不加美元符號,如 name str lili 特別注意 變數名和等號之間不能有空格 其他注意事項與其他語言相通 2 使用變數 使用乙個定義過的變數,只有在變數名前面加美元符號 即可 name str lili echo name str echo 注 變數名外面的花括...
shell中變數的使用
有關環境變數,詳見linux環境變數詳解 test 123 區域性環境變數一般用小寫 export test 123 全域性環境變數一般用大寫 export myname xiao ba wu 變數值有空格,要用單引號圍起來 export test 也可以這樣把前面的區域性變數匯出到全域性 loca...