我可以像这样改变我的光标形状:
printf "\x1b[\x31 q" # block :)
printf "\x1b[\x35 q" # ibeam :)
但是当我将它分配给一个变量%s
并使用扩展printf
时,它不起作用:
CURSOR="\x1b[\x3%s q"
printf ${CURSOR} 1 # block :(
printf ${CURSOR} 5 # ibeam :(
我该如何解决?
我可以像这样改变我的光标形状:
printf "\x1b[\x31 q" # block :)
printf "\x1b[\x35 q" # ibeam :)
但是当我将它分配给一个变量%s
并使用扩展printf
时,它不起作用:
CURSOR="\x1b[\x3%s q"
printf ${CURSOR} 1 # block :(
printf ${CURSOR} 5 # ibeam :(
我该如何解决?
\x31
is 字符1
和\x35
is5
,因此在这种情况下,您不必使用转义序列。通过使用
\x3%s
, only\x3
被解释为转义序列,%s
不再是它的一部分。如果您想将该部分作为参数,则必须使用%b
并带出整体\x31
以将其解释为转义序列: