Bash
cat 文件:在“使用者:/”提示之前列印
文件僅包含 1 行:
aaa
當我執行“cat文件”時,它會與使用者名混合
user /dir : cat file aaauser /dir :
可能是什麼問題呢 ?
額外資訊:
也許這在 bashrc 中沒有正確設置??
PS1='\u \W : '
更新:
除了在文件中包含換行符之外,不應該有其他解決方案嗎?
為什麼不關心會扭曲命令行提示的元素?(沒有新行)
您的文件末尾沒有換行符。因此,shell 提示符正好放在最後。你可以通過添加它來解決這個問題。
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 ~]$
正如已經回答的那樣,您的文件的最後一行不完整(最後一個字元不是換行符)。
關於您更新的問題“為什麼不關心可以扭曲命令行提示的元素?”,好吧, cat 命令確實不知道或通常不關心終端;它只是將其輸入文件複製到其標準輸出。
如果您想避免此類問題,您可以使用適當的尋呼機,例如 less。