linux 在“read -p”命令中为变量着色

idv4meu8  于 2023-02-03  发布在  Linux
关注(0)|答案(1)|浏览(252)

我想在"read-p"命令中给一个变量着色。在另一个主题中我发现了一种给文本字符串着色的方法,如下所示:

read -p $'\e[31mFoobar\e[0m: ' <= works

但是如果我用一个变量代替'Foobar',则不会显示值,因为单引号阻止了对变量$mmd的调用。

read -p $'\e[31m $mmd \e[0m: ' <= doesnt ork

你知道有什么办法能让它工作吗?
我试过:

read -p $'\e[31m $mmd \e[0m: ' <= doesnt work

read -p $"\e[31m $mmd \e[0m: " <= doesnt work
dw1jzc5e

dw1jzc5e1#

您可以终止并重新启动转义序列,从而将变量扩展移到外部,如以下脚本所示:

pax:~> mmd="Enter something"
pax:~> read -p $'\e[31m'"${mmd}"$'\e[0m: '
Enter something: hello<enter>
pax:~> echo ${REPLY}
hello

相关问题