1

我试图了解以下内容之间的区别

方法一:

  1. 启动 bash shell
  2. 在 bash shell 上键入命令my_command myargs

方法二:

  1. 启动 bash shell
  2. 直接执行以下my_command myargs | /bin/bash/

我的命令在方法 1 中通过,但在方法 2 中没有。我认为这两种方法是等效的。当然,在方法 1 中,我在执行 my_command 之前没有执行任何命令/更改路径变量。在方法 2 中,我只是创建一个全新的 shell 并将我的命令输入其中。

有人可以解释其中的区别吗?是否缺少 $PATH、环境变量等?如果是这样,我怎样才能回显/找出?

4

1 回答 1

3

您的“方法 2”将输出通过管道my_command传输到 bash。
相当于

$(my_command myargs)

如果您改为管道文本 text,它将起作用:

echo my_command myargs | /bin/bash/
于 2013-03-11T17:55:58.583 回答