运行 使用 unix 的简单程序 shell

Run simple programme using unix shell

我是 unix 及其开发的新手。在我的 new.sh 脚本中,我写了

$USERNAME=user
$PASSWORD=sekrit

echo $USERNAME

和 运行 new.sh 使用 bash new.sh

但是我得到以下错误

new.sh: line 1: =user: command not found
new.sh: line 2: =sekrit: command not found

我如何 运行 该命令并在终端中打印用户名变量?

USERNAME 是变量的名称。 $USERNAME 是替换(又名内容,又名值)。由于 USERNAME 为空,您实际上尝试 运行 一个名为 =user 的命令,这是错误消息告诉您的内容。

删除 $USERNAME=... 中的 $ 即可。

Jens notes in his 一样,问题是对变量的赋值没有前缀$,所以:

USERNAME=user
PASSWORD=sekrit

是写你想要的方式。你得到一个错误,因为 USERNAME 没有设置,所以在展开后,shell 将命令看成:

=user
=sekrit

它在系统上找不到这样的命令(这并不奇怪)。但是,请注意,如果您之前写过:

USERNAME=archipelago
PASSWORD=anchovy

然后是行:

$USERNAME=user
$PASSWORD=sekrit

相当于写作:

archipelago=user
anchovy=sekrit

你可以通过 运行 set 看到没有参数;它会显示 shell 中设置的所有变量的值。您可以搜索 USERNAME 和 archipelago 等词,看看发生了什么。

现在你已经学会了,算了吧。您需要使用它的次数非常有限(但在您需要它的那些罕见的——非常罕见的——场合下它很方便)。

出于所有实际目的,不要在 shell 中变量赋值的左侧写 $