如果已经设置了别名,如何签入我的.bashrc。
当我源一个.bashrc文件(它有一个函数名)时,就说好玩,而我当前的环境也有一个别名。
我尝试了unalias乐趣,但这会给我一个错误,当我的环境还没有那个别名时,这个错误是找不到乐趣的。
因此,在我的.bashrc中,在我的有趣函数中,我想检查是否设置了别名,然后unalias设置。
发布于 2012-03-20 08:41:59
如果您只想确保别名不存在,只需取消别名并将其错误重定向到/dev/null,如下所示:
unalias foo 2>/dev/null您可以检查是否设置了别名,如下所示:
alias foo >/dev/null 2>&1 && echo "foo is set as an alias" || echo "foo is not an alias"如本手册所述:
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.发布于 2012-03-20 08:37:42
只需使用命令alias就可以了
alias | grep my_previous_alias请注意,您可以实际使用unalias,这样您就可以执行以下操作
[ `alias | grep my_previous_alias | wc -l` != 0 ] && unalias my_previous_alias如果设置了别名,就会删除它。
发布于 2015-09-28 10:58:13
您可以使用type查看该命令是否存在,或者是否为别名。
如果找不到命令,它将返回错误状态。
例如,我定义了以下别名:
$ alias foo="printf"然后检查以下场景:
$ type foo >/dev/null && echo Command found. || echo Command not found.
Command found.或者专门指化名:
$ alias foo && echo Alias exists || echo Alias does not exist.或者检查它是别名还是常规命令:
$ grep alias <(type foo) && echo It is alias. || echo It is not.要检查您的rc文件中是否定义了别名,需要手动检查它,例如:
[ "$(grep '^alias foo=' ~/.bash* ~/.profile /etc/bash* /etc/profile)" ] && echo Exists. || echo Not there.https://stackoverflow.com/questions/9783507
复制相似问题