代码之家  ›  专栏  ›  技术社区  ›  Hamza Ahmad

PWD,PWD,${PWD},${PWD},$(PWD),$(PWD)之间有什么区别

  •  -4
  • Hamza Ahmad  · 技术社区  · 2 年前

    我在docker bind mount中使用它,它给出了不同的结果。

    3 回复  |  直到 2 年前
        1
  •  0
  •   Stephen C    2 年前

    PWD,PWD,${PWD},${PWD},$(PWD),$(PWD)

    我假设您是在shell提示符下键入上述内容的。

    • PWD 是不存在的命令的名称。如果出现“未找到命令”,则失败。
    • pwd 是shell内置命令的名称。输出当前目录。
    • ${PWD} 扩展到 PWD shell变量,其中包含当前目录的路径名。然后,它尝试执行它,但由于目录不可执行而失败。
    • ${pwd} 展开不存在的shell变量。这将给出一个空字符串并被忽略。
    • $(PWD) 尝试从运行中获取输出 PWD ,并将其作为命令运行。它失败了,因为 PWD 命令不存在。
    • $(pwd) 运行现有命令 pwd 。然后它获取该命令的输出,并尝试将其作为命令运行。它失败是因为输出是目录路径名,并且目录不可执行。
        2
  •  0
  •   Enlico    2 年前

    PWD 只是一个单词,它是一个包含“路径工作目录”值的变量的名称。

    的确 $PWD ${PWD} 允许您访问该变量,例如, echo $PWD ,但不能将其用作命令,因为它不是命令。

    pwd ,而是一个命令,它本质上返回 $PWD 关于标准输出。

    $(some-command) 是命令替换的语法,所以 $(pwd) 被什么取代了 pwd 根据标准输出进行生产,所以它的实践与 $PWD .