shell - 编写一个 shell 脚本来在给定的 x、y 位置显示任何字符串并在 Unix 中显示当前终端号?
问题描述
如何在 Unix/Linux shellscript 中执行这两个程序
- 在给定的 x、y 位置显示您的姓名
- 显示您的终端号码
解决方案
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"
推荐阅读
- android - Android 11+ 在前台服务 (FLP) 中对后台位置的请求限制是什么?
- python - Python拆分SQL语句
- javascript - 更改属性的值
- javascript - mongodb在写之前关闭连接
- c# - 几天的 C# 计时器
- typescript - 为什么这个 TS 类型被识别为命名空间?
- c - 在调用后使用 getline( &buff, &len, f ) 的 len 参数进行比较会导致它在下次调用时崩溃
- fortran - 使用 ifort 构建可执行共享库
- apache-kafka - 生成消息后从 Kafka 代理获得响应
- google-drive-api - 云端硬盘 API 更新