【发布时间】:2011-02-03 02:35:33
【问题描述】:
假设我有一个 bash 脚本,我称之为:
bash -c "some_command"
do something with code of some_command here
是否可以获取some_command的代码?我没有直接在运行脚本的 shell 中执行some_command,因为我不想改变它的环境。
【问题讨论】:
-
我不确定您间接执行的原因 - 子shell 确实从调用脚本继承了环境。试试
export FOO="foo"; bash -c 'echo $FOO'(单引号,这样在子shell运行它之前它不会被扩展)。 -
它确实继承了环境,但不会修改当前shell的环境。它将对环境进行的任何修改。 vars 死后会消失。
-
如果你想在不破坏父 shell 的情况下运行某些东西,那么我会使用子 shell,tldp.org/LDP/abs/html/subshells.html