shell指令碼之變數定義規範及使用

JerryCPS發表於2020-09-27

變數的定義

1、變數是在程式執行過程中,值允許改變的量
2、變數是用一串固定的字元來表示不固定的值

變數的規則

1、只能使用英文字母,數字和下劃線,首個字元不能以數字開頭

[root@localhost ~]# my_name="China Heart"
[root@localhost ~]# _name="China Heart"
[root@localhost ~]# my_name1="China Heart"

2、等號兩邊不能存在空格字元

#錯誤示範:
[root@localhost ~]# my_name = "China "
[root@localhost ~]# my_name=China Heart

3、變數與變數內容以一個等號”=”連線

4、變數內容可使用雙引號或者單引號
注意:雙引號內的特殊字元可以保持原有的特性,單引號內的特殊字元僅為一般字元

[root@localhost ~]# my_name="China"
[root@localhost ~]# echo $my_name
China
[root@localhost ~]# info="$my_name Heart"
[root@localhost ~]# echo $info
China Heart
[root@localhost ~]# info1='$my_name Heart'
[root@localhost ~]# echo $info1
$my_name Heart

變數的使用

推薦使用${}

[root@localhost ~]# my_name="China"
[root@localhost ~]# echo $my_name
China
[root@localhost ~]# echo ${my_name}
China
#特殊示範
[root@localhost ~]# my_name="China"
[root@localhost ~]# echo $my_nameHeart

[root@localhost ~]# echo ${my_name}Heart
ChinaHeart

變數值的傳遞

$0		執行指令碼的名稱
$1		指令碼後的第一串字串
$2		指令碼後的第二串字串
$#		指令碼後所跟的字串的個數
$*		指令碼後跟的所有字串,模式為“1 2 3”,一個字元
$@ 		指令碼後跟的所有字串,模式為“1”“2”“3”,三個字元
$$		當前程式的pid
#!/bin/bash
# test.sh指令碼
echo '$0' is $0
echo '$1' is $1
echo '$2' is $2
echo '$3' is $3
echo '$*' is $*
echo '$@' is $@
echo '$#' is $#
echo '$$' is $$
[root@localhost ~]# sh test.sh a b c
$0 is test.sh
$1 is a
$2 is b
$3 is c
$* is a b c
$@ is a b c
$# is 3
$$ is 8123

相關文章