我正在考虑将以下 echo 命令添加到 /etc/profile
echo -e ‘\033[9;0]\033[14;0]’
有问题的系统没有可用的 setterm 命令,只是运行文本控制台。
按照我计划的方式这样做有什么问题吗?
答案1
/etc/profile
被几个类似 Bourne 的 shell 读取。echo -e
不是标准的,因此您的系统上可能有一些 shell 无法识别它。您应该使用 printf 代替。
printf '\033[9;0]\033[14;0]'
(此外,不会添加那个虚假的换行符)。
有些工具可能会启动非交互式登录 shell(例如bash --login
),但您可能不希望这种情况发生。您可以添加额外的检查,例如:
case $TERM$- in
(linux*i*) printf '\033[9;0]\033[14;0]' > /dev/tty
esac
检查您是否位于 Linux 虚拟控制台中并且它是一个交互式 shell。如果 stdout 已重定向,则输出到控制终端。