首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在macOS上创建系统级命令别名

如何在macOS上创建系统级命令别名
EN

Stack Overflow用户
提问于 2021-06-20 14:58:00
回答 1查看 111关注 0票数 0

我想在java中执行一些旧代码,但随着旧版本的出现,它变得越来越复杂。因此,我希望创建我的“Java别名”,以便命令"java11“能够执行java 11二进制命令。不幸的是,在mac上,我没有成功。

我尝试遵循教程,希望在您的~/..zshrc中添加一个别名部分。我这样做了,它工作得很好,但是它不适用于bash脚本,这真的很烦人。

下面是我的java11别名在.zshrc中的行:

代码语言:javascript
复制
alias java11="/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/bin/java $@"

(我不知道它是否会起什么作用,但我也在我的.bashrc中添加了别名行)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-20 19:33:02

别名对于这样的事情没有多大用处。它们需要在shell初始化文件中进行配置(以及使用哪个文件取决于shell,在何种模式下启动,等等),它们默认在脚本中被禁用,并且当命令由shell以外的东西执行时(例如,在sudo java11 ...中,执行该命令的是sudo,并且它不知道任何关于别名的信息),它们是不可用的。

我建议创建一个实际的命令。由于这只是现有二进制(/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/bin/java),的另一个名称,所以您只需使用指向原始二进制的符号链接(对于更复杂的内容,创建包装脚本可能是有意义的)。默认情况下,macOS中不存在/usr/local/bin,但它位于默认的PATH中(除了cron作业,grrr),因此如果您创建它,将自动搜索它。所以像这样的事情应该有效:

代码语言:javascript
复制
sudo mkdir -p /usr/local/bin
sudo ln -s /Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/bin/java /usr/local/bin/java11

在运行zsh会话时,可能需要运行rehash才能让它们注意到新的二进制文件。并删除别名,以防止其重写新命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68057091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档