shell ctrl+H

#!/bin/bash
a="^H^H"
echo -n "abcdef$a_" (下劃線表示空格)
echo -n "abcdef$a"
echo 

代碼來源 abs-guide P32。 雖然作者說這段代碼能看到神奇的空格現象,然而,我在ubuntu上測試,並沒有。

把a="^H^H" 改成 a=$'\b\b' 就能看到第一個echo輸出 abcd_f (下劃線表示空格)。第二個的echo輸出並不變。

但作者,沒有說明,到底ctrl+H的作用是什麼。

多做了幾個測試,感覺是:光標跳到$a所在位置前面與^H數目相等的位置處,並用$a所在位置後面的字符替換光標所在位置後面的字符。

測試例子如下:

rubout=$'\b\b\b\b\b'   # 5 x Ctl-H.
echo -n "12345678"
sleep 2
echo -n "${rubout}test"
sleep 2
代碼來源abs-guide P32,部分修改。最後輸出位 123test8,由於中間有sleep還是比較容易看到出來效果的。

感覺這種屏幕上替換用得不是很多,C語言也有類似的操作,但,基本不常用。正常會把輸出放在變量裏,替換出最後結果,一次輸出,很少輸出到屏幕上以後再做修改。如果有實際應用,還望不吝賜教~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章