bash - 使用“读取值”时如何在窗口底部设置一行并且不打印回车?
问题描述
我正在做一个小小的 bash 聊天。所以我想在窗口的底部有一行用户可以输入他的消息。当他按下“输入”时,消息被发送并打印在最后一行的正上方。这条线不能动!像这样
User A sent: xxxx
User B sent: xxxx
User C sent: xxxx
User A sent: xxxx
User B sent: xxxx
Write your message here : YYYY *hit enter*
================================================
User A sent: xxxx
User B sent: xxxx
User C sent: xxxx
User A sent: xxxx
User B sent: xxxx
You: YYYY
Write your message here :
我read userinput
用来获取输入,但是当他按“输入”发送消息时会出现换行符。
所以我尝试了这个:
echo -e "\033[2A"; #cursor up 2 lines; echo -en "\r$i"; #remove carriage returns;
我写了“你好”和“再见”,这是怎么回事!我不知道如何解决这个问题。有人有解决方案吗?谢谢
Helloge: Hello
Byesage: Bye
message:
解决方案
我建议你看看Cursor Movement。您需要将光标向右移动,\033[9C
如下所示:
echo -e "\033[2A\033[9C$var_with_text_here"
如果这不是您真正需要的,那么请更好地解释,我会编辑我的答案:)
例子:
[user@host ~]$ echo "Message: bla"
Message: Hello
[user@host ~]$ echo -e "\033[2A\033[9CHello"
推荐阅读
- python - Python super().__init__() TypeError: super() 需要至少 1 个参数(给定 0)
- python - Python hdf5storage 正在转置我的数据?
- python - Python:“TypeError:‘Group’对象不可调用”
- validation - ASP.NET MVC 自定义客户端模型验证(比较两个 int 值)与 ivalidatableobject
- javascript - 如何创建交错的新闻线程?
- asp.net - 多次调用 LoggerFactory.CreateLogger<...> 会创建一个新文件吗?
- java - 正则表达式验证配置
- javascript - 更改 Ckeditor 的 textarea 的默认字体大小
- java - Android效果波纹圆圈imageView
- python - 列表中出现频率最高的数字