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-
}
유일한 컬러 버전은 오이페가 없는 버전입니다.
l() {
/usr/bin/ls -lF --color=always
}
함수에서 색상이 파이프를 통과하는 것을 막는 것은 무엇입니까?
답변1
l
함수 정의나 함수 이전에 사용된 별칭을 방해하고 있지 않은지 확인하세요 . 별칭이 함수보다 우선합니다. 기능 정의도 확장되었습니다.