我可以在一个bash行中嵌入命令吗?

时间:2016-12-10 22:24:06

标签: bash macos shell unix

我想运行命令:

$ cd which automator 

以便将自动机返回的值传递给cd。我看了一遍,找不到简单的答案。救救我!

1 个答案:

答案 0 :(得分:3)

您可能正在寻找:

cd "$(dirname "$(which automator)")"
  • 通常,您需要$(...) - command substitution - 将命令的输出用作另一个命令的参数。

  • 在这种情况下,因为which automator返回文件路径,所以需要 2 命令替换:第一个获取可执行文件路径which,第二个使用dirname从中提取目录路径。

  • 双引号命令替换通常是正确的做法。如果你不这样做,那么命令输出会受到单词拆分和通配(这是shell expansions的两个实例)的影响,这很少是你想要的。