别名从另一个目录获取 bash 文件并返回到当前目录

Kos*_*aur 3 bash firefox-addon-sdk

我正在尝试sourceFirefox插件 sdk。为此,我必须cd进入 sdk 的目录,然后运行source bin/activate​​. 如果我不cd进入该目录,并直接从我当前所在的任何路径获取源,则会发生以下情况:

$ 源 ~/src/devtools/addon-sdk/bin/activate
欢迎使用附加 SDK。运行“cfx docs”以获得帮助。
$cfx
-bash:cfx:找不到命令

我想要一个别名,将其放入 sdk,获取它,然后返回到我当前的目录:

alias acfx='cd ~/src/devtools/addon-sdk && source bin/activate && cd "$(dirname "$0")"'

这正确地获取了 sdk,但可惜没有返回到我调用别名的目录:

$ acfx
欢迎使用附加 SDK。运行“cfx docs”以获得帮助。
目录名:非法选项 -- b
用法:目录名路径

我在这里迷路了,如何返回原来的目录?或者指定一个“工作目录” source

anu*_*ava 5

您可以在子 shell 中执行 cd 和后续命令,如下所示:

(cd ~/src/devtools/addon-sdk && source bin/activate)
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因您不想创建子 shell,则可以使用cd -将目录更改为之前的目录:

cd ~/src/devtools/addon-sdk && source bin/activate && cd -
Run Code Online (Sandbox Code Playgroud)