下面我运行了我期望的无效命令:var=3 date
,但实际上不是。
$ var=3 date
Sun May 26 17:10:22 UTC 2019
$ echo $?
0
但该变量未分配值3
:
$ echo $var
$
我本来以为这var=3
不是一个有效的命令。我缺少什么?
答案1
您将 var 设置为 3 作为 date 命令环境中的环境变量,而不是 bash shell 本身(调用/父进程)的环境中。
作为参考,请参阅 Bash 手册:https://www.gnu.org/software/bash/manual/html_node/Environment.html
具体来说:
The environment for any simple command or function may be augmented temporarily by prefixing it with parameter assignments, as described in Shell Parameters. These assignment statements affect only the environment seen by that command.