エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
ターミナルでの文字幅を調べる - @znz blog
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
ターミナルでの文字幅を調べる - @znz blog
#!/bin/bash echo -ne "$*"'\e[6n'; read -d';' a; read -dR a; printf '\e[M\r'; echo $[a-1] 解説 実... #!/bin/bash echo -ne "$*"'\e[6n'; read -d';' a; read -dR a; printf '\e[M\r'; echo $[a-1] 解説 実装としては実際に表示して、カーソル位置を端末に問い合わせて、表示を消去して、桁を取り出して 1 引いています。 エスケープシーケンスなどに関しては、 対応制御シーケンス を参考にしてください。 まず文字列を表示しています。 CSI Ps n (DSR) を使ってカーソルの位置を報告させています。 CSI r ; c R という応答のうち、 ; までを捨てて、 c だけ変数 a に取り込んでいます。 CSI Ps M (DL) でカーソル行に表示された内容を消去しています。 CR で行頭にカーソルを戻しています。 カーソル位置なので 文字数+1 になっているので、1 引いて表示しています。 追記 実装の説明で