我可以在 bashrc 中以增量方式定义别名吗?

我可以在 bashrc 中以增量方式定义别名吗?

目前,在我的 .bashrc 中,我有这样的内容:

if [ -x /usr/bin/dircolors ]; then
    # ...
    alias ls='ls --color=auto -F'
    # ...
fi

# xxx
alias ll='ls -AltF'

现在假设我也想ls使用该--group-directrories-first选项。

alias ls='ls --group-directrories-first'我要做的就是在 处添加行# xxx

然而,这alias完全取代了 ,因此选项--color=auto-F消失了。

我该如何解决这个问题?

答案1

执行此操作的一种方法是跟踪变量中的选项:

lsOptions=""

if [ -x /usr/bin/dircolors ]; then
    lsOptions="$lsOptions --color=auto -F"
fi

if [ something else]; then
    lsOptions="$lsOptions --group-directories-first"
fi

## After all the ifs have been evaluated
alias ls="ls $lsOptions"

相关内容