input() {
read -p $'\e[31m\e[1m $1 [Y/n] \e[0m' -n 1 -r
}
input "test"
exit
这只是打印“$1”作为文本行。为什么它不打印“测试”,我怎样才能让它这样做?
答案1
问题是变量不会在单引号内扩展。您正在寻找这个:
read -p $'\e[31m\e[1m '"$1"$' [Y/n] \e[0m' -n 1 -r
请注意,现在只有转义序列是单引号的,而转义$1
序列是双引号的。
input() {
read -p $'\e[31m\e[1m $1 [Y/n] \e[0m' -n 1 -r
}
input "test"
exit
这只是打印“$1”作为文本行。为什么它不打印“测试”,我怎样才能让它这样做?
问题是变量不会在单引号内扩展。您正在寻找这个:
read -p $'\e[31m\e[1m '"$1"$' [Y/n] \e[0m' -n 1 -r
请注意,现在只有转义序列是单引号的,而转义$1
序列是双引号的。