将命令直接管道到shell可执行文件

时间:2013-03-11 17:54:43

标签: bash

我想了解以下

之间的区别

方法1:

  1. 启动bash shell
  2. 在bash shell上键入命令my_command myargs
  3. 方法2:

    1. 启动bash shell
    2. 直接执行以下my_command myargs | /bin/bash/
    3. 我的命令在方法1中传递但在方法2中没有。我认为两种方法都是等价的。当然在方法1中,我没有做任何命令/在执行my_command之前更改了路径变量。在方法2中,我只是创建一个全新的shell并将命令输入其中。

      有人可以解释一下这个区别吗?是否缺少$ PATH,环境变量等?如果是这样,我怎么回应/发现?

1 个答案:

答案 0 :(得分:2)

您的“接近2”会将my_command输出与bash联系起来 它相当于

$(my_command myargs)

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

echo my_command myargs | /bin/bash/
相关问题