Variable_name=value
a
和A
為兩個(gè)不同的變量。=
兩側(cè)都不能有空格。$
+變量名。在 Bash 中聲明變量后賦值,它會(huì)自動(dòng)判斷數(shù)據(jù)類型,不必在聲明的同時(shí)去定義變量的數(shù)據(jù)類型。 如果您將數(shù)字值賦值給變量,它將會(huì)自動(dòng)轉(zhuǎn)換為整數(shù)工作;如果您將字符串賦值給該變量,那么它將會(huì)轉(zhuǎn)換為字符串類型。
Bash 變量有兩種類型:
1. 系統(tǒng)定義的變量 由 Linux 操作系統(tǒng)本身創(chuàng)建和維護(hù)的預(yù)定義變量。它們的命名標(biāo)準(zhǔn)通常是以大寫字母對(duì)變量進(jìn)行命名。
BASH=/user/bin/bash
BASH_VERSION=4.2.46(2)
COLUMNS=80
HOME=/home/W3Cschool
LOGNAME=W3Cschool
若要了解更多的系統(tǒng)定義變量,您可以在終端輸入命令set
,env
,printenv
以獲取這些變量的列表。
2. 用戶定義的變量 由用戶自行創(chuàng)建和維護(hù)的變量。這些類型的變量多數(shù)以小寫字母參與命名,但不具有大小寫強(qiáng)制性規(guī)定。
#!/bin/bash
say=Hello user
Comment=welcome to W3Cschool
echo "$say,$Comment!"
執(zhí)行結(jié)果:
Hello user,welcome to W3Cschool!
我們通常對(duì) Bash 中的變量執(zhí)行兩個(gè)操作:
comment=Welcome to W3Cschool
comment=Welcome to W3Cschool
echo $comment
注意:如果通過單引號(hào)將變量或字符串進(jìn)行任意拼接組合,那么將無法成功讀取它們。
命令行參數(shù)通過將數(shù)據(jù)輸入傳遞給代碼功能塊,使腳本更具動(dòng)態(tài)性,如下示例:
./bash_script.sh parameter1 parameter2...
注:腳本名稱與所有傳遞的參數(shù)之間不能存在空格,本處使用空格便于閱讀。
在 Bash 中,命令行參數(shù)與以下默認(rèn)參數(shù)或特殊變量的引用一同使用。
$0
——指定要調(diào)用的腳本名稱。$1-9
——存儲(chǔ)前9個(gè)自變量的名稱,或可用作自變量的位置。$#
——指定傳遞給腳本的參數(shù)總數(shù)。$*
——將所有命令行參數(shù)連接在一起來存儲(chǔ)它們。$@
——將參數(shù)列表存儲(chǔ)為數(shù)組。$?
——指定最后一個(gè)命令或最近執(zhí)行過程的推出狀態(tài)。$$
——指定當(dāng)前腳本的進(jìn)程 ID 。$!
——顯示最后一個(gè)后臺(tái)作業(yè)的 ID 。傳遞命令行參數(shù)的兩種方法:
#!/bin/bash
echo $0 '> echo $0'
echo $1 $2 $3 $4 $5 $6 $7 $8 $9'> echo $1 $2 $3 $4 $5 $6 $7 $8 $9'
執(zhí)行結(jié)果:
$ chmod +x bash_script.sh
$ ./bash_script.sh Here is the W3Cschool
./bash_script.sh > echo $0
Here is the W3Cschool >echo $1 $2 $3 $4 $5 $6 $7 $8 $9
$@
。
variable_name=("$@"
?```)
${variable_name[i]}
#!/bin/bash
parameter=("$@")
echo ${parameter[0]} ${parameter[1]} ${parameter[2]}
在 Bash 中,命令替換允許命令的輸出替換命令本身。 命令替換是指Bash執(zhí)行的擴(kuò)展,它獲取Bash命令的輸出,存儲(chǔ)在一個(gè)變量中并顯示回顯。 命令替換在腳本和變量分配方面增強(qiáng)了數(shù)據(jù)的靈活性。
語法:
variable_name=`command_name`
variable_name=`command_name [option...] argument1 argument2...`
variable_name=`/path/to/command`
$
開頭,將命令放在圓括號(hào)內(nèi)進(jìn)行命令替換,如下示例:
variable_name=$(command_name)
variable_name=$(command_name [option...] argument1 argument2...)
variable_name=$(path/to/command)
更多建議: