Gar*_*oyd 10 bash terminal newline
我现在有这个
$PROMPT=">"
while read -p "${PROMPT}" line; do
echo -en "\r"
some_info_printout($line)
echo -en "\n${PROMPT}"
done
Run Code Online (Sandbox Code Playgroud)
这给出了这样的输出
>typed input
INFO OUT ["typed input"]
>more text
INFO OUT ["more text"]
>
Run Code Online (Sandbox Code Playgroud)
我想要的是做一个read并忽略换行动作,以便预先存在的文本可以覆盖现有的行
INFO OUT ["typed input"]
INFO OUT ["more text"]
>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
Kev*_*vin 13
将Enter导致read以一定返回将光标移动到下一行.您需要使用终端转义将其恢复到上一行.无论如何,你的脚本的其余部分都有一些问题.这是有用的,它应该给你一个更好的起点:
#!/bin/bash -e
PROMPT=">"
while read -p "${PROMPT}" line; do
echo -en "\033[1A\033[2K"
echo "You typed: $line"
done
Run Code Online (Sandbox Code Playgroud)
\033是一个Esc; 在\033[1A将光标移动到上一行,\033[2K删除一切是就可以了.