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

标签 bash firefox-addon-sdk

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

$ source ~/src/devtools/addon-sdk/bin/activate
Welcome to the Add-on SDK. Run 'cfx docs' for assistance.
$ cfx
-bash: cfx: command not found

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

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

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

$ acfx
Welcome to the Add-on SDK. Run 'cfx docs' for assistance.
dirname: illegal option -- b
usage: dirname path

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

最佳答案

您可以像这样在子 shell 中执行 cd 和后续命令:

(cd ~/src/devtools/addon-sdk && source bin/activate)

如果出于某种原因你不想创建子 shell,那么使用 cd - 将目录更改为之前的目录:

cd ~/src/devtools/addon-sdk && source bin/activate && cd -

关于bash - 从另一个目录获取 bash 文件并返回当前目录的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15877485/

相关文章:

javascript - 如何使内容脚本在内容脚本文件之前运行?

firefox - Firefox 扩展中的并发和多线程

linux - bash lsof : get pid from one tty to another one

bash - 在运行时替换 json 中的值

php 使用 system()/shell_exec()/exec() 运行终端应用程序,但只显示一半的输出

sockets - XPCOM 套接字正在关闭。如何让它保持活力?

arrays - 为什么 Bash 不用新数组覆盖我的数组?

bash - 重新执行之前的命令但使用不同的选项

javascript - 使用 Firefox sdk 在非事件选项卡中的 div 上调用 click() 事件

jquery - pageWorker 不适用于 Facebook 上的所有页面