[[ -t 1 ]]は何をしますか?

[[ -t 1 ]]は何をしますか?

私が理解したように、ユーザーがrootではない場合、以下の$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 testbash

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

答え2

[ -t 1 ]

...または...

test -t 1

...ファイル記述子1(stdout)がttyの場合はtrueを返し、それ以外の場合はfalseを返します。同じ理由

[[ -t 1 ]]

...多くの殻の中で。

関連情報