0
我試圖在沒有在單獨行中回答的情況下詢問用戶發明的顏色。Bash:在提示中使用顏色
目前,我有這樣的:
msg() {
local mesg=$1; shift
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n"
}
ALL_OFF="$(tput sgr0)"
BOLD="$(tput bold)"
GREEN="${BOLD}$(tput setaf 2)"
[...]
until [[ $REPLY = [yY] ]]; do
msg "Done (y/n)?" && read -p ""
done
但是如前所述,問題是它把應對新行:
==> Done (y/n)?
y
所以,我怎麼能這樣做呢?
還有什麼方法可以在顏色上有響應嗎?
通常你會稱之爲「提示」,而不是「問題」。你嘗試過ANSI逃脫嗎? http://stackoverflow.com/a/3586005/1180785 – Dave 2013-04-07 23:38:11
@Dave,你的意思是[這](http://stackoverflow.com/a/3585889/1821548)?這不是一個C程序。 – Det 2013-04-08 00:04:55
@Dave'tput'負責查找轉義序列 - 如果您的終端是ANSI,則會返回ANSI代碼;如果這些代碼是合適的,則會返回ANSI代碼;如果您的終端具有返回值,則返回值不變不支持所需的顏色/模式/ whatnot。使用它比使用ANSI編碼更好,因此完全不支持非ANSI終端。 – 2013-04-08 04:20:14