Bash
bashrc中變數的基本語法解釋
我想正確導出一個變數。為了做到這一點,我必須了解幾種語法變化。我已經看到了以下導出變數的機制。在這種情況下,我正在使用
.bashrc
:
export MY_VARIABLE=$USER/.gradle
–$export MY_VARIABLE="$USER/.gradle"
- 引號export MY_VARIABLE=USER/.gradle
–沒有$export $MY_VARIABLE=$USER/.gradle
–所有的$在這些情況下,$ 符號的意義是什麼?為什麼有時使用有時不使用?
如果路徑中沒有空格,我們是否需要引號?如果 $USER 中包含的路徑包含空格怎麼辦?
為什麼出口左側沒有$?
諸如
export
,等標記declare
明確使用變數名作為參數。$
一般可以理解為“value of”,所以$variable
意思是“value ofvariable
”。採取這組命令:foo=bar bar=baz export $foo ( echo "$foo" )
這裡會發生的是你會得到一個空行的輸出。這是因為在
export
命令中,$foo
實際上是bar
(的值foo
),所以實際執行的命令是export bar
。由於foo
未導出,因此其預設值為 null。但是,如果最後一行是:( echo "$bar" )
您將獲得 的輸出
baz
,其值bar
已被export
編入即將發布的子shell。通常在所有
"
變數引用周圍使用弱引號 (" “)是一個非常好的主意,原因包括但不限於您提到的那個(即文件名和路徑中的空格)。例如,如果我們有:if [ $letter == a ]; then echo "ayyyy"; fi
但是
letter
是空的,shell 會嘗試執行if [ == a ]
這是一個語法錯誤,但帶有引號:
if [ "$letter" == a ];
變成
if [ "" == a ];
這是有效的。