catファイル: "user:/" プロンプトの前に印刷

catファイル:

ファイルには1行しか含まれていません。

aaa

「cat file」を実行すると、ユーザー名と混在します。

user /dir : cat file
aaauser /dir :

何が問題なのでしょうか?

追加情報:

bashrcでこれが正しく設定されていない可能性がありますか? ?

PS1='\u \W : '

修正する:

ファイルに改行を含めること以外に他の解決策はありませんか?

コマンドラインプロンプトを歪める可能性がある要素に気にしませんか? (新しい行なし)

ベストアンサー1

ファイルの末尾に改行文字がありません。その結果、シェルプロンプトは最後に配置されます。追加すると、この問題を解決できます。

printf '\n' >> file

最後に改行なしでファイルを生成すると、この問題を再現できます。 (この-nフラグは、echoの末尾に改行文字を追加しないように指示します。)

[zbrady@server ~]$ printf 'test' > testfile
[zbrady@server ~]$ cat testfile
test[zbrady@server ~]$
[zbrady@server ~]$ printf '\n' >> testfile
[zbrady@server ~]$ cat testfile
test
[zbrady@server ~]$

おすすめ記事