--tty-only 옵션은 무엇을 합니까?

--tty-only 옵션은 무엇을 합니까?

방금 내 시스템 관리자가 다음에 대한 전역 별칭을 만들었다는 것을 깨달았습니다 which.

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

which페이지에는 다음과 같이 나와 있습니다.

tty가 아닌 경우 오른쪽에서 옵션 처리를 중지합니다.

이것은 무엇을 의미 하는가?

답변1

설정:

$ /usr/bin/which --show-dot a
./a
$ /usr/bin/which --show-tilde a
~/a

.대화형으로 실행될 때의 버전을 원하지만 리디렉션될 때의 버전을 원할 경우 ~이를 별칭으로 사용할 수 있습니다.

/usr/bin/which --show-tilde --tty-only --show-dot

데모:

# interactive / on a tty
$ /usr/bin/which --show-tilde --tty-only --show-dot a
./a
# not interactive / redirected to a file
$ /usr/bin/which --show-tilde --tty-only --show-dot a > output
$ cat output 
~/a

이후에 지정하는 모든 옵션은 --tty-only출력이 tty인 경우에만 고려됩니다.

답변2

이는 출력이 다음을 which수행 하는 경우를 의미합니다.~ 아니다터미널을 참조한 다음 수행하십시오.~ 아니다프로세스 --read-alias및 .--show-dot--show-tilde

일반적으로 파이프, 일반 파일 등의 경우

which watch | foo # not a tty
which watch > foo # not a tty
which watch       # tty
which watch >&2   # tty

예를 들어 옵션이 인식되지 않습니다.데비안:

관련 정보