为什么 echo 命令返回这种结果?
Why is the echo command returning this kind of result?
今天回显一个环境变量打错了,结果出乎意料。环境变量包含一个简单的路径。
$ export TEST_ENV_VAR=/path/to/some/project
$ echo $TEST_ENV_VAR
/path/to/some/project
我的错字是两个 $$ 而不是一个。在这种情况下,我希望 echo
到 return 类似 $/path/to/some/project
的东西。
$ echo $$TEST_ENV_VAR
11513TEST_ENV_VAR
为什么 echo
return 这种结果?
好像是$$
returns当前进程的pid
因此显示的输出是附加了 TEST_ENV_VAR
的 pid。
$$
被认为是特殊字符。
($$) Expands to the process ID of the shell. In a () subshell, it expands to the process ID of the invoking shell, not the subshell.
如您所见,它 returns 是一个 PID。此 PID 是您当前使用的 shell。如果你使用命令 ps aux | grep $$
你会看到这样的东西:
1997 1 1997 19804 cons0 3293653 14:15:20 /usr/bin/bash
这意味着在我的例子中,我将 bash 用作 shell。
今天回显一个环境变量打错了,结果出乎意料。环境变量包含一个简单的路径。
$ export TEST_ENV_VAR=/path/to/some/project
$ echo $TEST_ENV_VAR
/path/to/some/project
我的错字是两个 $$ 而不是一个。在这种情况下,我希望 echo
到 return 类似 $/path/to/some/project
的东西。
$ echo $$TEST_ENV_VAR
11513TEST_ENV_VAR
为什么 echo
return 这种结果?
好像是$$
returns当前进程的pid
因此显示的输出是附加了 TEST_ENV_VAR
的 pid。
$$
被认为是特殊字符。
($$) Expands to the process ID of the shell. In a () subshell, it expands to the process ID of the invoking shell, not the subshell.
如您所见,它 returns 是一个 PID。此 PID 是您当前使用的 shell。如果你使用命令 ps aux | grep $$
你会看到这样的东西:
1997 1 1997 19804 cons0 3293653 14:15:20 /usr/bin/bash
这意味着在我的例子中,我将 bash 用作 shell。