Im trying to create a ls-like function.I started with this alias, which works fine:alias l=/usr/bin/ls -lF --color=always | tr -s ' ' | cut -d ' ' -f 9-However, converting it to a function results in no colors:l() {    local _c=    [ -t 1 ] && _c=--color=always    /usr/bin/ls -lF $_c $@ | tr -s ' ' | cut -d ' ' -f 9-}Even removing all differences from the alias to the function remains colorless:l() {    /usr/bin/ls -lF --color=always | tr -s ' ' | cut -d ' ' -f 9-}The only colored variant is one without oipel() {    /usr/bin/ls -lF --color=always}What prevents the color from passing through the pipes in functions?
escape sequence behaving differently in function
zsh;function;escape characters
Are you sure you haven't got an l alias that is either interfering with the function definition or being used before the function: aliases take precedence over functions. And are expanded even for a function definition.