printfとエスケープシーケンスを使用しますか?

printfとエスケープシーケンスを使用しますか?

カーソルの外観を次のように変更できます。

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 :(

どうすれば解決できますか?

ベストアンサー1

\x31は文字1\x35is5なので、この場合はエスケープシーケンスを使用する必要はありません。

CURSOR="\x1b[%s q"

printf "${CURSOR}" 1
printf "${CURSOR}" 5

おすすめ記事