input() {
read -p $'\e[31m\e[1m $1 [Y/n] \e[0m' -n 1 -r
}
input "test"
exit
Run Code Online (Sandbox Code Playgroud)
这只是打印“$1”作为文本行。为什么不打印“测试”,我怎样才能做到这一点?
Qua*_*odo 13
问题是变量没有在单引号内展开。你正在寻找这个:
read -p $'\e[31m\e[1m '"$1"$' [Y/n] \e[0m' -n 1 -r
Run Code Online (Sandbox Code Playgroud)
看到现在只有转义序列是单引号,而$1
双引号。