如何找出打开的 bash 终端窗口中的最大行数和字符列数?
我知道我可以使用 curses C 库来找到答案,如下所示:
getmaxyx(stdscr, mrow, mcol);
我希望以相同的方式将 mrow 和 mrol bash 变量关联到我的 bash 会话。
答案1
Bash 已经内置了您正在寻找的变量:$LINES 和 $COLUMNS。
不幸的是,这些只在交互式 shell 中起作用,通常不适用于脚本,但可以通过在脚本的 shebang 行中添加开关将脚本设置为交互式:
/bin/bash -i #!/bin/bash -i
答案2
Xterm 带有一个名为的工具resize
,可以在脚本内部使用它来设置相同的变量:
eval $(resize)
echo "The screen is $COLUMNS columns wide."