要判断Bash脚本是在终端控制台还是图形界面中启动,可以使用以下方法:
tty
命令来检查当前脚本是否在终端控制台中运行。终端控制台的设备文件通常是/dev/tty
。如果脚本在终端控制台中运行,tty
命令将返回/dev/tty
,否则返回其他值。if [ "$(tty)" = "/dev/tty" ]; then
echo "脚本在终端控制台中运行"
else
echo "脚本在图形界面中运行"
fi
DISPLAY
环境变量来判断脚本是否在图形界面中运行。DISPLAY
环境变量指定了图形界面的显示地址。如果脚本在图形界面中运行,DISPLAY
环境变量将被设置为类似localhost:0.0
的值,否则将为空。if [ -n "$DISPLAY" ]; then
echo "脚本在图形界面中运行"
else
echo "脚本在终端控制台中运行"
fi
以上两种方法可以根据具体情况选择使用。