2010-08-02 62 views
2

在bash中,某些命令在命令提示符和同一行之前放置它们的标准输出。例如:bash标准输出,然后在同一行上提示

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

我想要在下一行命令提示符在专用线上的标准输出。我可以用“回声”之前,敷在背部蜱这样,但我不知道是否有更好的方法(一ARG能够始终/经常使用等):

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

“某些命令在命令提示符和同一行中放置标准输出” - 这听起来像您可能错误地认为所有输出来自哪里。命令的标准输出(第一个例子中的'm​​essage')来自命令本身,但提示符来自shell。该命令对打印出提示没有帮助。 – 2010-08-02 21:31:35

回答

2

试着增加; printf "\n"或在你的命令后输入; echo。问题是你的输出不会以换行符结束。

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

+0

是的。谢谢。以下是修复后的复杂(真实世界)案例(在Ubuntu上): $ printf“'ngettext -d gtk20'打开%d项目''打开%d项目'5'”5 && echo Ouverture de 5éléments $ – user389850 2010-08-03 15:47:25

2

你可以设置你的提示来自动处理这个。

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

从服务器故障this question

它打印足够的空间以包裹行尾,然后回车(\r)返回第一列。您可以按照通常的方式自定义显示内容。

相关问题