escape se comportando diferentemente em função

0

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?

    
por flying sheep 10.01.2017 / 14:01

1 resposta

1

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.

    
por 10.01.2017 / 19:02