添加到现有别名
Add to existing alias
我的 bashrc 的相关部分看起来像这样:
if [ -x /usr/bin/dircolors ]; then
alias ls='ls --color=auto --list-directories-first' # use colors
# ...
else
alias ls='ls --list-directories-first' # don't use colors
# ...
fi
这是为了允许动态确定别名的一部分(具体来说,是否输出颜色)。但是每次重写整个别名维护起来很乏味,我宁愿添加到那个别名而不是完全替换它,所以我想要这样的东西:
if [ -x /usr/bin/dircolors ]; then
alias ls='ls --color=auto' # use color output
# ...
fi
alias ls='ls --list-directories-first' #
# ...
但后面的 alias ls=...
语句替换了旧的别名。有没有办法修改或逐步构建别名而不是替换它?
,但请考虑使用变量并以此方式构建别名。对于您的特定情况,只需定义一个变量,如 USE_COLORS
以空字符串开头:
USE_COLORS=
[ -x /usr/bin/dircolors ] && USE_COLORS='--color=auto'
alias ls="ls --list-directories-first $USE_COLORS"
您也可以一次构建一个变量命令:
LS_ALIAS='ls'
LS_ALIAS+='--list-directories-first'
[ -x /usr/bin/dircolors ] && LS_ALIAS+='--color-auto'
我的 bashrc 的相关部分看起来像这样:
if [ -x /usr/bin/dircolors ]; then
alias ls='ls --color=auto --list-directories-first' # use colors
# ...
else
alias ls='ls --list-directories-first' # don't use colors
# ...
fi
这是为了允许动态确定别名的一部分(具体来说,是否输出颜色)。但是每次重写整个别名维护起来很乏味,我宁愿添加到那个别名而不是完全替换它,所以我想要这样的东西:
if [ -x /usr/bin/dircolors ]; then
alias ls='ls --color=auto' # use color output
# ...
fi
alias ls='ls --list-directories-first' #
# ...
但后面的 alias ls=...
语句替换了旧的别名。有没有办法修改或逐步构建别名而不是替换它?
USE_COLORS
以空字符串开头:
USE_COLORS=
[ -x /usr/bin/dircolors ] && USE_COLORS='--color=auto'
alias ls="ls --list-directories-first $USE_COLORS"
您也可以一次构建一个变量命令:
LS_ALIAS='ls'
LS_ALIAS+='--list-directories-first'
[ -x /usr/bin/dircolors ] && LS_ALIAS+='--color-auto'