tcsh起動スクリプトに次のコードがあります。
set _color_count = `sh -c "tput -T${TERM}-256color colors 2>/dev/null"`
if ($? == 0) then # check if it was a valid terminal type
if ($_color_count != 256) then # sanity-check
echo "Warning: Color count '$_color_count' for '${TERM}-256color' is not 256"
endif
setenv TERM "${TERM}-256color"
endif
私の問題は、コマンドが無効な端末タイプのためにゼロ以外の終了ステータスを返した場合でも、終了ステータス($?)が常にゼロになることです。tput
コマンドの出力をキャプチャしない場合、終了ステータスの確認は正常に機能します。
sh -c "tput -T${TERM}-256color colors 2>/dev/null"
tput
コマンドがバッククォートである場合に、コマンドがゼロ以外の終了ステータスを返したかどうかを判断するにはどうすればよいですか?