【发布时间】:2012-02-28 09:19:09
【问题描述】:
我想知道有什么机制可以用来从子 shell 更改父 shell 的目录。例如,我在 $HOME 中运行脚本 "settings.sh"。我的 $HOME 有一个目录 $HOME/TEST/run。如果我的 "settings.sh" 脚本如下
#!/bin/bash
# some shell related code
# some shell related code
cd $HOME/TEST/run
exit 0
我在 $HOME 的命令提示符下执行上述脚本。执行后,我希望我的命令提示符在目录 $HOME/TEST/run 中。我明白在子 shell 中,它被 cd'd 到 $HOME/TEST/run,但在执行结束时,它又回到 $HOME。
是否有任何优雅的方式来执行上述操作,使用单个脚本。 一种方法是修改脚本“settings.sh”生成另一个脚本,然后使用“.$HOME/generatedScript.sh”
【问题讨论】:
-
在我回答之前,我一定错过了你问题的底部。为什么需要“生成”另一个脚本?将您需要的内容放入 settings.sh 脚本并获取它有什么问题?
-
脚本主体更改 $PATH 以执行仅脚本“settings.sh”所需的特定应用程序。我不希望 $PATH 在父 shell 中受到影响。