[[ -t 1 ]]는 무엇을 합니까?

[[ -t 1 ]]는 무엇을 합니까?

내가 이해한 바에 따르면 사용자가 루트가 아닌 경우 $EUID아래 스크립트는 sum 을 비교하여 실행됩니다 0. 그런 다음 [[ -t 1 ]]스크립트가 터미널에서 실행되는지 여부를 결정하는 데 사용됩니다 . 그렇다면 sudo를 사용하여 사용자에게 비밀번호를 묻는 메시지를 표시합니다. 그렇지 않으면 gksudo를 호출하여 작업을 수행합니다.

if (($EUID != 0)); then

    if [[ -t 1 ]]; then
        sudo "$0" "$@"
    else
        exec 1>output_file && rm output_file
        gksu "$0 $@"
    fi

    exit

fi

[[ -t 1 ]]비교/평가 란 무엇인가요 ?

답변1

[[ -t 1 ]]테스트에서는 파일 설명자 1(STDOUT)이 터미널에 열려 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

에서 help test:bash

-t FD          True if FD is opened on a terminal.

답변2

[ -t 1 ]

...또는...

test -t 1

...파일 설명자 1(stdout)이 tty이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 같은 이유

[[ -t 1 ]]

...많은 껍질 속에.

관련 정보