我试图用彩色的用户发明,而没有单独的答案。
我目前有这个:
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
那我该怎么办呢?
还有什么方法可以让颜色得到响应吗?
答案 0 :(得分:3)
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n"
如果您不想换行,请不要在格式字符串的末尾添加\ n。
你也可以使用阅读:
read_msg() {
read -p "${GREEN}==>${ALL_OFF}${BOLD} $1${ALL_OFF}"
}
until [[ $REPLY = [yY] ]]; do
read_msg "Done (y/n)?"
done