Eu posso mudar a forma do meu cursor assim:
printf "\x1b[\x31 q" # block :)
printf "\x1b[\x35 q" # ibeam :)
Mas quando eu atribuo isso a uma variável com %s
e expando usando printf
, não funciona:
CURSOR="\x1b[\x3%s q"
printf ${CURSOR} 1 # block :(
printf ${CURSOR} 5 # ibeam :(
Como faço para corrigir isso?
\x31
é o caractere1
e\x35
é5
, portanto, nesse caso, você não precisa usar sequências de escape.Ao usar
\x3%s
, apenas\x3
é interpretado como uma sequência de escape, o%s
não faz mais parte dela. Se você quiser fazer dessa parte um argumento, você terá que usar%b
e trazer o todo\x31
para que seja interpretado como uma sequência de escape: