bash 在終端機上換行的問題

在我自己常使用的伺服器上,我個人的命令提示符號會經由更改原本的設定檔,加上顏色,方便在畫面上辨識,看起來也比較好看(這是我自己覺得的啦!)

有時候會發現在使用的時候,如果打的是很長的命令,會有換行不正常的情況,例如:

root@localhoat> dddddddddddddddddddddddddddddddd

若繼續打字下去,會變成:

dddddddddddat> dddddddddddddddddddddddddddddddd

可以注意到的是,第一行最前方的提示字元被蓋住了,而且也沒有正常的換行,正常的應該是:

root@localhoat> dddddddddddddddddddddddddddddddd
ddddddddddd

我在網路上找到了The Non-Annoying Terminal Mini How-To & Fun with shopt 這篇文章,提到 bash 的 line-wrap 問題,可以使用

shopt -s checkwinsize

打開 checkwinsize 的功能,但是我試了之後,發現我的是同一篇文章中後半段網友提到的,是由於設定 PS1 變數所產生的問題。
在使用 escape 字元設定提示符號的顯示顏色時,要在色碼的前後加上 \[ \] 才不會導致 bash 計算視窗寬度產生錯誤,進而發生換行錯誤。

在修改了我自己的PS1設定檔案之後,我的換行問題就解決了。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: