Tem certeza de que você não tem um l
alias que está interferindo na definição da função ou sendo usado antes da função: os aliases têm precedência sobre as funções. E são expandidos até mesmo para uma definição de função.
Estou tentando criar uma função semelhante a ls.
Eu comecei com esse alias, o que funciona bem:
alias l="/usr/bin/ls -lF --color=always | tr -s ' ' | cut -d ' ' -f 9-"
No entanto, convertê-lo para uma função resulta em nenhuma cor:
l() {
local _c=
[ -t 1 ] && _c=--color=always
/usr/bin/ls -lF $_c "$@" | tr -s ' ' | cut -d ' ' -f 9-
}
Mesmo removendo todas as diferenças do alias para a função permanece incolor:
l() {
/usr/bin/ls -lF --color=always | tr -s ' ' | cut -d ' ' -f 9-
}
A única variante colorida é uma sem oipe
l() {
/usr/bin/ls -lF --color=always
}
O que impede que a cor passe pelos canais nas funções?
Tags zsh escape-characters function