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"
我有一个 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"