所以,我有一种情况,我想将输出打印到刚刚由用户发布的输出上,我写了这么短的东西,以确保它是可能的。
echo -e "Cmd> \c" && read cmd && echo "-append_something"
虽然看起来read会在“enter”上打印一个新行。有没有办法取消这个?或者我 可以 以任何其他方式将此输出打印到同一行。
实时查看输入 IS 。
预期输出: Cmd> <whatever>-append_something
答案 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"