​获取命令行终端的大小(行,列)和当前光标位置

获取命令行终端的大小(行,列)和当前光标位置

(Get the size of teriminal windows and the cursor position, in English?)

#!/bin/sh
    echo -ne '\e[6n';read -sdR pos
    pos=${pos#*[};
    echo $pos;
    tput cols
    tput lines

输出终端大小

    tput cols
    tput lines

输出当前光标位置。

#echo 输出终端位置,read -s 关闭回显,-d遇到R字符停止接受,赋值给pos
 echo -ne '\e[6n';read -sdR pos
 #去掉多余字符
 pos=${pos#*[};
 echo $pos;


待解决问题:

此脚本在测试系统上输出不稳定问题。

有时输出正确,如:

48;1
170
48

有时输出错误,如:

^[[48;1R48;1
170
48

如了解导致问题原因,还望指点。谢谢。

你可能感兴趣的:(​获取命令行终端的大小(行,列)和当前光标位置)