转义序列在功能上表现不同

转义序列在功能上表现不同

我正在尝试创建一个类似 ls 的函数。

我从这个别名开始,效果很好:

alias l="/usr/bin/ls -lF --color=always | tr -s ' ' | cut -d ' ' -f 9-"

但是,将其转换为函数会导致没有颜色:

l() {
    local _c=
    [ -t 1 ] && _c=--color=always
    /usr/bin/ls -lF $_c "$@" | tr -s ' ' | cut -d ' ' -f 9-
}

即使删除了别名与函数的所有差异,仍然是无色的:

l() {
    /usr/bin/ls -lF --color=always | tr -s ' ' | cut -d ' ' -f 9-
}

唯一的彩色版本是没有 oipe 的版本

l() {
    /usr/bin/ls -lF --color=always
}

是什么阻止颜色通过函数中的管道?

答案1

您确定没有l干扰函数定义或在函数之前使用的别名吗:别名优先于函数。甚至对于函数定义也进行了扩展。

相关内容