首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果已经设置了别名,如何签入bashrc?

如果已经设置了别名,如何签入bashrc?
EN

Stack Overflow用户
提问于 2012-03-20 08:31:23
回答 9查看 22.1K关注 0票数 38

如果已经设置了别名,如何签入我的.bashrc

当我源一个.bashrc文件(它有一个函数名)时,就说好玩,而我当前的环境也有一个别名。

我尝试了unalias乐趣,但这会给我一个错误,当我的环境还没有那个别名时,这个错误是找不到乐趣的。

因此,在我的.bashrc中,在我的有趣函数中,我想检查是否设置了别名,然后unalias设置。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-03-20 08:41:59

如果您只想确保别名不存在,只需取消别名并将其错误重定向到/dev/null,如下所示:

代码语言:javascript
复制
unalias foo 2>/dev/null

您可以检查是否设置了别名,如下所示:

代码语言:javascript
复制
alias foo >/dev/null 2>&1 && echo "foo is set as an alias" || echo "foo is not an alias"

如本手册所述:

代码语言:javascript
复制
For each name in the argument list for which no  value  is  sup-
plied,  the  name  and  value  of  the  alias is printed.  Alias
returns true unless a name is given for which no alias has  been
defined.
票数 48
EN

Stack Overflow用户

发布于 2012-03-20 08:37:42

只需使用命令alias就可以了

代码语言:javascript
复制
alias | grep my_previous_alias

请注意,您可以实际使用unalias,这样您就可以执行以下操作

代码语言:javascript
复制
[ `alias | grep my_previous_alias | wc -l` != 0 ] && unalias my_previous_alias

如果设置了别名,就会删除它。

票数 14
EN

Stack Overflow用户

发布于 2015-09-28 10:58:13

您可以使用type查看该命令是否存在,或者是否为别名。

如果找不到命令,它将返回错误状态。

例如,我定义了以下别名:

代码语言:javascript
复制
$ alias foo="printf"

然后检查以下场景:

代码语言:javascript
复制
$ type foo >/dev/null && echo Command found. || echo Command not found.
Command found.

或者专门指化名:

代码语言:javascript
复制
$ alias foo && echo Alias exists || echo Alias does not exist.

或者检查它是别名还是常规命令:

代码语言:javascript
复制
$ grep alias <(type foo) && echo It is alias. || echo It is not.

要检查您的rc文件中是否定义了别名,需要手动检查它,例如:

代码语言:javascript
复制
[ "$(grep '^alias foo=' ~/.bash* ~/.profile /etc/bash* /etc/profile)" ] && echo Exists. || echo Not there.
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9783507

复制
相关文章

相似问题

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