我正在尝试创建一个类似 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
干扰函数定义或在函数之前使用的别名吗:别名优先于函数。甚至对于函数定义也进行了扩展。