Bashプロンプト文字列は、カールコマンド出力と同じ行に表示されます。

Bashプロンプト文字列は、カールコマンド出力と同じ行に表示されます。

curlコマンドを実行すると、返されるjson応答がbashプロンプト文字列と競合します。

~$curl localhost:8001/api
{"message":"this is a test message"}~$

~$2行目の終わりに注意してください。作業フォルダを含むようにbashプロンプト文字列をカスタマイズしました。

PS1=\[\e]0;\u@\h: \w\a\]\W\$

ローカルサーバー(nodejs)が最後に改行文字を追加しないようです。

bashプロンプト文字列に改行文字が常に表示されることを確認する方法は?

答え1

コマンドに対してこれを行いcurl、プロンプトに追加の改行をしたくない場合は、出力をエコーするだけです。

~$ echo "$(curl localhost:8001/api)"
{"message":"this is a test message"}
~$

答え2

  1. 簡単な答え:\nプロンプト文字列の先頭に(改行)特殊文字を使用してください。 bash プロンプト文字列が確認されます。いつも改行文字に表示されます。しかし、これは望むものよりも頻繁に発生する可能性があります。
  2. の使用中にこの問題が発生した場合は、次のcurl点を見てください。この回答では

答え3

以下を使用して、bshシェルのすべてのコマンドの後に改行を強制できます。プロンプトコマンド

PROMPT_COMMAND="echo"

これで、すべてのコマンドの後またはすべてのプロンプトの前にecho引数なしで呼び出すことができます。次にecho改行文字を印刷します。改行で終わるコマンドを実行すると、最後に2つの改行があります。望むより:

echo -n foo
foo$ 
$ PROMPT_COMMAND="echo"
echo -n foo
foo
$ echo foo
foo

$

答え4

改行文字を手動で追加する1つの方法は次のとおりです&& echo

~$ curl localhost:8001/api && echo
{"message":"this is a test message"}
~$

関連情報