我的 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
命令是否返回非零退出状态?