Bash

如何在 cat 命令後使 bash 提示在新行上?

  • January 8, 2022

我得到什麼:

host:~ user$ cat example.txt
some texthost:~ stas$

我想得到什麼:

host:~ user$ cat example.txt
some text
host:~ stas$

有沒有辦法讓我cat表現得像這樣?

我在 Mac OS X 上使用 bash。

大多數 unix 工具都設計為可以很好地處理文本文件。文本文件由一系列行組成。一行由一系列以換行符結尾的可列印字元組成。特別是,非空文本文件的最後一個字元始終是換行符。顯然,example.txtsome text包含沒有最終換行符,因此它不是文本文件。

cat做一個簡單的工作;將任意文件轉換為文本文件不是該工作的一部分。其他一些工具總是將其輸入轉換為文本文件;如果您不確定要顯示的文件是否以換行符結尾,請嘗試執行awk 1而不是cat.

如果上一個命令將游標留在最後一個邊距以外的某個位置,您可以讓 bash 在下一行顯示其提示。把它放在你的.bashrcGetFree對Dennis Williamson提案的變體)中:

shopt -s promptvars
PS1='$(printf "%$((COLUMNS-1))s\r")'$PS1

引用自:https://unix.stackexchange.com/questions/60459