首页 > 解决方案 > 编写一个 shell 脚本来在给定的 x、y 位置显示任何字符串并在 Unix 中显示当前终端号?

问题描述

如何在 Unix/Linux shellscript 中执行这两个程序

  1. 在给定的 x、y 位置显示您的姓名
  2. 显示您的终端号码

标签: shellunix

解决方案


2D 光标控制是特定于平台的功能,但通常支持ANSI 转义码。这应该有效:

echo -e "\033[20;10HHello World" # prints "Hello World" at x=20, y=10

如果您想知道,\033在使用-e带有echo.

您的用户名应该在$USER环境变量中:

echo $USER

如果通过“终端编号”您指的是当前 shell 的 tty 终端标识符,则可以在命令行中输入who am i. 这也将打印您的用户名和登录日期/时间,但您可以只提取终端信息awk

TTY=`who am i | awk '{ print $2 }'`
echo $TTY

因此,您可以将所有这些放在一起,在控制台窗口的左上方以粗体文本打印您的用户名和 tty 标识符,如下所示:

TTY=`who am i | awk '{ print $2 }'` ; echo -e "\033[1m\033[1;1H$USER ($TTY)\033[0m"

推荐阅读