Shell 中的變數以及使用方式

2021-10-18 07:54:10 字數 3630 閱讀 9755

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代表該指令碼名稱,

$1 —— $ 9代表第一到第九個引數,十以上的引數,十以上的引數需要用大括號包含,如$),有幾個引數就輸出幾個引數,多餘引數不影響指令碼執行,但不會將引數輸出

2.案例實操

(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...