我是unix及其開發人員的新手。在我new.sh
劇本我寫使用unix shell運行簡單程序
$USERNAME=user
$PASSWORD=sekrit
echo $USERNAME
,並使用bash new.sh
跑new.sh
但我得到以下錯誤
new.sh: line 1: =user: command not found
new.sh: line 2: =sekrit: command not found
如何運行該命令在終端打印的用戶名變量?
我是unix及其開發人員的新手。在我new.sh
劇本我寫使用unix shell運行簡單程序
$USERNAME=user
$PASSWORD=sekrit
echo $USERNAME
,並使用bash new.sh
跑new.sh
但我得到以下錯誤
new.sh: line 1: =user: command not found
new.sh: line 2: =sekrit: command not found
如何運行該命令在終端打印的用戶名變量?
USERNAME
是變量的名稱。 $USERNAME
是替換(又名內容,又名值)。由於USERNAME
爲空,因此您有效嘗試運行名爲=user
的命令,這是錯誤消息告訴您的。
從$ $USERNAME=...
中刪除$,它將起作用。
由於Jens音符在他answer,問題是,一個賦值給一個變量不與$
前綴,所以:
USERNAME=user
PASSWORD=sekrit
是寫你想要什麼樣的方式。因爲USERNAME未設置你得到一個錯誤,所以膨脹後,殼看着命令爲:
=user
=sekrit
,它無法找到系統(不是很奇怪)對這樣的命令。但是,要知道,如果你以前寫的:
USERNAME=archipelago
PASSWORD=anchovy
然後行:
$USERNAME=user
$PASSWORD=sekrit
本來等同於書寫:
archipelago=user
anchovy=sekrit
你可以看到,運行set
沒有爭論;它會顯示所有在shell中設置的變量的值。您可以搜索USERNAME和羣島等單詞,查看發生了什麼。
現在你已經知道了,忘了它。您需要使用它的次數非常有限(但在需要它時很少見 - 非常罕見)。
出於所有實際目的,請勿在shell中的變量賦值的左側寫入$
。
非常感謝你 – 2015-02-05 14:59:14
不客氣。你可能會注意到,即使你在看電視節目的時候(例如在英國,也可能受到英國而不是美國影響的其他地區),通常使用「節目」作爲計算機程序。 – 2015-02-05 15:04:20
謝謝你傢伙。 – 2015-02-05 15:05:49
延斯感謝你的工作。現在我知道如何在unix腳本中使用局部變量 – 2015-02-05 14:51:50