首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mac OS上的zsh中设置别名?

如何在Mac OS上的zsh中设置别名?
EN

Stack Overflow用户
提问于 2022-08-05 19:45:42
回答 2查看 544关注 0票数 0

我设置了这样一个zsh别名:

代码语言:javascript
复制
alias sed="/usr/local/Cellar/gnu-sed/4.8/bin/gsed"

我可以通过运行来确认它是有效的:

代码语言:javascript
复制
type sed
sed is an alias for /usr/local/Cellar/gnu-sed/4.8/bin/gsed

但是,如果我将完全相同的代码、别名设置并键入sed,然后在文件名测试下输入一个脚本并运行它,将得到默认sed:

代码语言:javascript
复制
zsh test
sed is /usr/bin/sed

我也尝试过扩展路径,但还是得到了同样的东西,令我困惑.

EN

回答 2

Stack Overflow用户

发布于 2022-08-05 21:04:36

如果您想在所有未来的脚本中使用命令词sed作为gsed (如果您真的想这样做,您可以这样做),在brew install gsed安装结束时,Homebrew有关于如何实现这一点的信息。

代码语言:javascript
复制
GNU "sed" has been installed as "gsed".
If you need to use it as "sed", you can add a "gnubin" directory
to your PATH from your bashrc like:

    PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"

虽然您询问的是zsh,所以我假设您已经升级到至少macOS Catalina,并且现在尝试使用zsh而不是bash,所以这意味着我建议将建议的行从Homebrew到~/.zshrc而不是~/.bashrc

有些事情已经改变了,默认的HomebreInstallation目录是现在,您可以使用命令brew --prefix来获取您的目录,现在它是/opt/homebrew,而不是旧的/usr/local/Cellar

现在,您的sed应该以gsed的形式在所有脚本中运行。

附加说明

您的代码涉及别名的原因不像预期的那样工作,还有一些额外的注释需要删除(对zshbash):

脚本文件中的definition).

  • Aliases别名在脚本运行后消失(除非脚本被另一个脚本调用,否则调用脚本将在启动文件中执行新的别名),如“~/..zshrc”等在脚本文件中不使用.
票数 0
EN

Stack Overflow用户

发布于 2022-08-07 20:03:40

唯一对我起作用的就是创建一个函数。在那之后,当我调用help参数时,sed被gsed压倒了。

代码语言:javascript
复制
#!/bin/bash
sed () {
    /usr/local/Cellar/gnu-sed/4.8/bin/gsed "$@"
}
sed --help
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73254636

复制
相关文章

相似问题

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