やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Bashでカーソル位置を取得する

ズバリ。

参考

コード

カーソル位置を取得する。(行と列)

GetRow(){
    { local ROW; local COL; }
    IFS=';' read -sdR -p $'\E[6n' ROW COL
    echo "${ROW#*[}"
}
GetCol(){
    { local ROW; local COL; }
    IFS=';' read -sdR -p $'\E[6n' ROW COL
    echo "${COL#*[}"
}

ちなみに画面全体の行列サイズ取得は以下。

GetRows(){ local v=`tput lines`; echo $v; }
GetCols(){ local v=`tput cols`; echo $v; }