我是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