我有一个经常使用的二进制文件(来自emulator
的{{1}})。我已将其添加到我的Android SDK Tools
变量中,以便我可以轻松地仅使用$PATH
运行命令。
然而,事实证明二进制文件使用相对路径;如果我从不同的目录运行脚本,它会抱怨。我真的很想从任何文件夹运行命令而不必emulator
进入二进制文件所在的目录。有没有办法让脚本/ bash认为我从它所在的目录运行命令?
答案 0 :(得分:2)
功能是适合工作的工具:
emu() ( cd /dir/with/emulator && exec ./emulator "$@" )
让我们把它分解成碎片:
cd
仅对该子shell生效,并且不会影响父级。&&
连接cd
和以下命令可确保在cd
失败时正确中止。exec
告诉子shell使用模拟器在内存中替换它自己,而不是只有一个额外的shell,只是等待模拟器退出。"$@"
扩展为传递给函数的参数列表。答案 1 :(得分:1)
在〜/ .bashrc中添加别名(emu):
alias emu="(cd /dir/with/emulator; ./emulator)"
答案 2 :(得分:0)
我会查看命令行别名。
如果你在linux中并使用bash,你可以去〜/ .bash_profile并添加一行如下:
alias emulator='./path-to-binary/emulator"
在Windows上它有点不同。 Here是一个关于如何在Windows中执行类似操作的示例。