在 Ubuntu 16.04 中,我的目录有近 10 个文件,每个文件都包含一个 Bash 脚本文件:
"$HOME"/myScripts/x.sh
"$HOME"/myScripts/y.sh
...
相反,为以下文件中的每一个创建近 10 个不同的别名bashrc
:
alias "$HOME"/myScripts/x.sh
alias "$HOME"/myScripts/y.sh
...
有没有一种方法可以创建一个“全局”别名,它将保存该目录的路径("$HOME"/myScripts/
)并让我访问执行每个文件,但也没有它们的.sh
扩展名?
例如,我将在控制台中执行:
x
并将"$HOME"/myScripts/x.sh
被处决。
我不会真正使用像 这样的非直观名称x
,这只是举例。
这里要解决的小问题是保存大量别名,从而简化它们的维护。我认为,使用专用于某些软件上下文的目录越多,这种方法就越方便。
更新
最后我做的是创建一个包含许多 Bash 函数的文件,然后获取该文件,然后导出其中的函数:
export -f myFunc_0 myFunc_1 ...
可能有一种简单的全局方法可以导出这些内容,但我不知道有哪一种。
答案1
您可以将该目录添加到您的路径中,这样您就可以x.sh
从任何地方键入而无需别名。
例如~/.bashrc
:
PATH="$PATH:$HOME/myScripts"
不需要扩展名,因此您只需将脚本从 重命名x.sh
为x
.
mv ~/myScripts/x.sh ~/myScripts/x
或者,您可以在脚本中创建一个符号链接到路径中的某个位置,例如/usr/local/bin
,并将链接命名为x
。
ln -s /home/user/myScripts/x.sh /usr/local/bin/x