Bash
如何在 cat 命令後使 bash 提示在新行上?
我得到什麼:
host:~ user$ cat example.txt some texthost:~ stas$
我想得到什麼:
host:~ user$ cat example.txt some text host:~ stas$
有沒有辦法讓我
cat
表現得像這樣?我在 Mac OS X 上使用 bash。
大多數 unix 工具都設計為可以很好地處理文本文件。文本文件由一系列行組成。一行由一系列以換行符結尾的可列印字元組成。特別是,非空文本文件的最後一個字元始終是換行符。顯然,
example.txt
僅some text
包含沒有最終換行符,因此它不是文本文件。
cat
做一個簡單的工作;將任意文件轉換為文本文件不是該工作的一部分。其他一些工具總是將其輸入轉換為文本文件;如果您不確定要顯示的文件是否以換行符結尾,請嘗試執行awk 1
而不是cat
.如果上一個命令將游標留在最後一個邊距以外的某個位置,您可以讓 bash 在下一行顯示其提示。把它放在你的
.bashrc
(GetFree對Dennis Williamson提案的變體)中:shopt -s promptvars PS1='$(printf "%$((COLUMNS-1))s\r")'$PS1