代码之家  ›  专栏  ›  技术社区  ›  grizzthedj dusa bhargava

为什么echo命令返回这种结果?

  •  0
  • grizzthedj dusa bhargava  · 技术社区  · 4 年前

    我今天输入了一个环境变量,结果出乎意料。环境变量包含一个简单路径。

    $ export TEST_ENV_VAR=/path/to/some/project
    $ echo $TEST_ENV_VAR
    /path/to/some/project
    

    我的错别字是2$$而不是1。我早就料到了 echo 返回类似 $/path/to/some/project 在这种情况下。

    $ echo $$TEST_ENV_VAR
    11513TEST_ENV_VAR
    

    回声 返回这种类型的结果?

    1 回复  |  直到 4 年前
        1
  •  2
  •   vsergi    4 年前

    $$

    ($$)展开为shell的进程ID。在()子shell中,它扩展到调用shell的进程ID,而不是子shell。

    正如您所注意到的,它返回一个PID。此PID是您正在使用的当前shell。如果你使用命令 ps aux | grep $$

    1997 1 1997 19804 cons0 3293653 14:15:20 /usr/bin/bash

    这意味着在我的例子中,我使用bash作为shell。

    Source

        2
  •  2
  •   grizzthedj dusa bhargava    4 年前

    看来 $$

    所以显示的输出是带有 TEST_ENV_VAR