이스케이프 시퀀스는 기능적으로 다르게 동작합니다.

이스케이프 시퀀스는 기능적으로 다르게 동작합니다.

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함수 정의나 함수 이전에 사용된 별칭을 방해하고 있지 않은지 확인하세요 . 별칭이 함수보다 우선합니다. 기능 정의도 확장되었습니다.

관련 정보