[[email protected] ~]# name="C biancheng"
變數的定義就是這麼簡單,但是如果不遵守變數定義規則,就會報錯。比如:
[[email protected] ~]# 2name="C biancheng"
-bash: 2name=shen chao: command not found
#變數名不能以數位開頭
[[email protected] ~]# name = "C biancheng"
-bash: name: command not found
#左右兩側不能有空格
[[email protected] ~]# name=C baincheng
-bash: chao: command not found
#變數的值如果有空格,必須用引號包含
[[email protected] ~]# aa=123
#定義變數aa的值是123
[[email protected] ~]# aa="$aa"456
#重複定義變數aa的值是源aa的值加上456
[[email protected] ~]# echo $aa
123456
#aa的值已經變成了123456
[[email protected] ~]# aa=${aa}789
[[email protected] ~]# echo $aa
123456789
#在進行變數疊加時也可以使用${變數名}格式
[[email protected] ~]# name="C biancheng"
#定義變數name
[[email protected] ~]# echo $name
C biancheng
#輸出變數name的值
[[email protected] ~]# set [選項]
選項:
[[email protected] ~]# set
BASH=/bin/bash
...省略部分輸出...
name='C biancheng'
#直接使用set命令,會查詢系統中所有的變數,包含使用者自定義變數和環境變數
[[email protected] ~]# set -u
[[email protected] ~]# echo $file
-bash: file: unbound variable
#當設定了-u選項後,如果呼叫沒有設定的變數則會報錯。預設是沒有任何輸出的
[[email protected] ~]# set -x
[[email protected] ~]# ls
+ ls --color=auto
anaconda-ks.cfg install.log install.log.syslog sh tdir test testfile
#如果設定了-x選項,則會在每條命令執行之前先把命令輸出一次
[[email protected] ~]# unset 變數名
這裡只是清空變數,而不是呼叫變數的值,所以在變數名前不需要加入符號。舉個例子:
[[email protected] ~]# unset name
#刪除name變數