Bash <read>打印新行,如何防止</read>

时间:2014-06-02 16:32:45

标签: bash

所以,我有一种情况,我想将输出打印到刚刚由用户发布的输出上,我写了这么短的东西,以确保它是可能的。

echo -e "Cmd> \c" && read cmd && echo "-append_something"

虽然看起来read会在“enter”上打印一个新行。有没有办法取消这个?或者我 可以 以任何其他方式将此输出打印到同一行。

实时查看输入 IS

预期输出: Cmd> <whatever>-append_something

1 个答案:

答案 0 :(得分:2)

-s使用read选项:

echo -e "Cmd> \c" && read -s cmd && echo "-append_something"

更新

使用经典的ANSI屏幕光标操作应该可以解决问题:

echo -e "Cmd> \c"$'\e[s' && read cmd && echo $'\e[u'"${cmd}-append_something"

简单:

echo -ne "Cmd> \e[s" && read cmd && echo $'\e[u'"${cmd}-append_something"

另一个更短的:

read -p "Cmd> "$'\e[s' cmd && echo $'\e[u'"${cmd}-append_something"

更多手册:

read -p "Cmd> " cmd && echo $'\e[A\e[5C'"${cmd}-append_something"