我有一个 bash 脚本,我想从任何目录调用它,但我不想将它所在的目录添加到 PATH,因为它充满了许多其他脚本,这些脚本只会变得困惑。
有问题的脚本操纵环境变量,所以我必须找到它。 我尝试创建一个别名
alias aliastoscript="/path/to/script"
source aliastoscript #This does not work says no such file
我也无法将脚本本身复制到其他位置,因为它取决于目录结构和目录中的其他脚本。
所以我尝试了指向路径中已有位置的符号链接(symbolic link):
ln -s /path/to/script /directory/already/in/path/myscript
但这也不起作用:
source myscript #says no such file exists
谁能建议我如何实现这一目标?为什么符号链接(symbolic link)方法不起作用?
如果有什么不同,我在 ubuntu 14.04 上使用 zsh shell
编辑:
下面给出的答案有效,但我也想知道为什么符号链接(symbolic link)方法不起作用。 这是命令序列
ln -s /path/to/script /directory/already/in/path/myscript
#Now there is a symlink called myscript in a directory which is in PATH
source myscript arg1 #This throws an error saying no such file myscript,
#but it is not supposed to happen because myscript resides in a directory which is in PATH
编辑 2: 我只是想出了我做错了什么,我创建的符号链接(symbolic link),我使用了相对路径,这对我来说完全是愚蠢的,使用绝对路径它就像一个魅力。
最佳答案
尝试替换:
别名 aliastoscript="/path/to/script"
与:
export aliastoscript="/path/to/script"
关于linux源码符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40548367/