使用“read”时如何清除 Bash 中的用户输入?

发布于 2024-10-12 09:43:56 字数 338 浏览 0 评论 0原文

我有这个代码处于无限循环中:

read -a output
echo ${output[@]}

当代码运行时,屏幕可能看起来像这样:

Hello, World # line where value was given to output (I want this gone)
Hello, World # echoed output
[] # <-- cursor waiting for next input

有没有办法清除用户输入值的行?就像完全摆脱它一样(不仅仅是将行更改为空白,这仍然会在所需的输出中留下间隙)?

I have this code in an infinite loop:

read -a output
echo ${output[@]}

When the code runs the screen might look like this:

Hello, World # line where value was given to output (I want this gone)
Hello, World # echoed output
[] # <-- cursor waiting for next input

Is there a way to clear the line where the user inputs the value? Like, as in get rid of it totally (not just changing the line to whitespace that will still leave a gap in the desired output)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

燃情 2024-10-19 09:43:56

tputcuu1dl1 功能结合使用。

echo "foobar42"
echo "$(tput cuu1)$(tput dl1)baz123"

Use tput with the cuu1 and dl1 capabilities.

echo "foobar42"
echo "$(tput cuu1)$(tput dl1)baz123"
七月上 2024-10-19 09:43:56

为什么不直接删除 echo ${output[@]} 呢?由于您没有引用数组变量,因此这似乎与使用 tput hax 的结果相同。

Why not just remove the echo ${output[@]}? Since you're not quoting your array variable, this seems to be the same result as if you were to use tput hax.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文