2010-08-02 64 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)返回第一列。您可以按照通常的方式自定義顯示內容。

相關問題