当没有任何unalias时,静音bash的unalias

Vil*_*oes 8 bash alias

我可以访问几个远程帐户,我通过 $HOME/SSHFS 子目录中的 sshfs 挂载这些帐户。为了提醒我我不使用本地文件,我设置$PROMPT_COMMAND了一个 function prmt_cmd,在那里我设置了一个不同的$PS1if $PWDmatching $HOME/SSHFS*。现在,要添加一些额外的保护,我想补充的-i自动标记的rmmvcp命令每当我在一个子目录是$HOME/SSHFS。所以我最终得到了类似的东西

function prmt_cmd () {
if [[ $PWD == $HOME/SSHFS* ]] ; then
    PS1=some prompt
    alias rm='rm -I'
    alias mv='mv -i'
    alias cp='cp -i'
else
    # Reset the PS1, remove aliases
    PS1=my default prompt
    unalias rm mv cp
fi
}
Run Code Online (Sandbox Code Playgroud)

(在实际定义中,我做了一些其他的事情,但这无关紧要。)但是,unalias当别名不存在时会抱怨,这意味着当我不在 SSHFS/* 中时,在每个提示之前我都会收到三个错误消息。unalias似乎没有关闭它的开关。所以我的问题是:有没有更好的方法来实现我想要的?也许我只是在做(完全)错了。

如果相关,$BASH_VERSION = 4.1.5(1)-release在 Ubuntu 10.10 上。

Rya*_*ler 14

只需重定向输出。

unalias rm mv cp >/dev/null 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

  • `&>/dev/null` 将用一颗石头消灭两只鸟。 (4认同)
  • 只需重定向 stderr 就足够了 `2>/dev/null` (2认同)