linux 源一个符号 link

linux source a symbolic link

我有一个 bash 脚本,我想从任何目录调用它,但我不想将它所在的目录添加到 PATH 中,因为它充满了许多其他脚本,这些脚本只会混乱。

有问题的脚本操纵环境变量,所以我必须获取它。 我尝试创建一个别名

alias  aliastoscript="/path/to/script" 
source aliastoscript #This does not work says no such file

我也无法将脚本本身复制到其他位置,因为它取决于目录结构和目录中的其他脚本。

所以我尝试了指向路径中已有位置的符号链接:

ln -s /path/to/script /directory/already/in/path/myscript

但这也不起作用:

source myscript #says no such file exists

任何人都可以建议我如何实现这一目标吗?为什么符号链接方法不起作用?

如果有什么不同,我在 ubuntu 14.04

上使用 zsh shell

编辑:

下面给出的答案有效,但我也想知道为什么符号链接方法不起作用。 这是命令序列

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: 我只是想出我做错了什么,我创建的符号链接,我使用了相对路径,这对我来说完全是愚蠢的,使用绝对路径它就像一个魅力。

你的变量名前面少了一个$

source $aliastoscript

您不需要软 link 作为来源。完整的文件名应该有效。更好的是

source /path/to/script

尝试替换:
alias aliastoscript="/path/to/script"

与:
export aliastoscript="/path/to/script"