0
我想了解以下直接管道中的命令外壳可执行
方法1的区别:
- 推出的bash shell
- 在bash shell中键入命令
my_command myargs
方法2:
- 推出的Bash shell
- 执行以下直接
my_command myargs | /bin/bash/
我的命令传入方法1,但不会在方法2.我想这两种方法是等效的。当然,在方法1中,我还没有做过任何命令/在执行my_command之前更改了路径变量。在方法2中,我只是创建一个全新的shell并将命令传递给它。
有人可以解释这种差异吗?它缺少$ PATH,环境变量等?如果是这样,我怎么回声/找出?
需要注意的是,你还可以看到差异,因为方法1使用一个交互式shell和方法2才不是。通常,您可能会观察到的唯一区别是,如果'my_command'是别名或shell函数,可能无法在非交互式shell中定义。 – chepner 2013-03-11 18:21:48