bash stdout后跟同一行的提示

时间:2010-08-02 21:20:46

标签: bash

在bash中,一些命令在命令提示符之前和SAME行上放置了stdout。例如:

$ printf message
message$ 
$ gettext -d gtk20 File
Fichier$ 

我希望stdout在NEXT线上的命令提示符的专用线上。我可以在'echo'之前加上像这样的回合刻度,但我想知道是否有更好的方法(一个可以永远/经常使用的arg等):

$ echo `printf message`
message
$
$ echo `gettext -d gtk20 File`
Fichier
$ 

2 个答案:

答案 0 :(得分:2)

尝试在命令后添加; printf "\n"; echo。问题是您的输出不会以换行符结束。

您也可以将命令输出注入单个printf "%s\n"命令。

答案 1 :(得分:2)

您可以设置提示以自动为您处理。

PS1='$(printf "%$(($(tput cols)-1))s\r")\u@\h [\w]\$ '

来自服务器故障的this question

它会打印足够的空格以包裹行尾,然后回车(\r)以返回第一列。您可以像往常一样自定义显示的内容。