Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

ウィンドウサイズ変えた後に stty を設定する

$
0
0

シリアル (UART等でも) 接続した場合、SIGWINCH が届かないのでウィンドウサイズを変更したときに画面がおかしくなることがある。それを直すための bashスクリプト。
手動で stty cols ${COL} rows ${ROW}と叩くのと一緒。
xtermが入っていると resetコマンドで済むらしいですが。

winch_
#!/bin/bash# カーソル位置を保存echo-ne'\e7'SAVE_STTY=$(stty-g)stty raw -echo min 0

# (x,y)=(999,999) へカーソルを移動、現在位置を表示するecho-ne'\e[999;999H\e[6n'IFS=';'read-rd R -a POSITION
stty${SAVE_STTY}# 出力をパースROW=${POSITION[0]:2}COL=${POSITION[1]}# カーソル位置を復旧echo-ne'\e8'# 端末を設定して表示するstty cols ${COL} rows ${ROW}stty size

エスケープシーケンスを出力してる echo 文 3つは一度に出力しても変わりません。
read をなんとかしたら sh で動きそうなんだけどなぁ。

putty で UART 接続すると速度を手打ちしないといけないので、カンニング用に。
110, 300, 600, 1200, 2400, 9600,
14400, 19200, 38400,
57600, 115200, 230400,
460800, 921600
stty 1200で速度を設定、stty speedで現在の速度を表示。

参照:
Arch Linux/シリアルコンソール

おまけ:ウィンドウタイトルを変更するには
printf "\033P\033]0;`uname -n`:`tty`\007\033\\"
こんな感じ。


Viewing all articles
Browse latest Browse all 2722

Trending Articles