我想知道是否有可能打印任何字符,直到行尾。我知道这是一个愚蠢的要求。但如果有可能,那么这将有助于我改善我的脚本外观,因为人们使用不同大小的腻子窗口。
目前我正在打印“-”直到EOL基于大小我的窗口。但大小不同和“-”来到下一行在其他终端。如下所示:
回声“-----------------------------------------------------------------------------------------------------------”
我需要在shell脚本中完成此操作。有没有办法找到屏幕宽度并相应地打印?
5条答案
按热度按时间von4xj4u1#
您可以使用:
或在非BASH使用中:
yrwegjxp2#
您可以使用:
以获取屏幕宽度。
uyhoqukh3#
正如其他人所说,
tput cols
是获取终端宽度的一种合理的标准方法。当您调整终端大小时,现代终端应该发送一个SIGWINCH,可以捕获该命令并使用它来重新确定终端的大小。一些shell内置了对此的支持。如果您使用bash shell并打开了checkwinsize
shell选项,bash
将尝试通过捕获此信号来保持环境变量LINES
和COLUMNS
正确。你甚至可以疯了,自己设下陷阱。我发现这既有教育意义,也有误导作用:
上面的命令导致shell在重新调整大小时不是 * 立即 * 输出当前的单词width,而是在重新调整大小后的下一次输入时输出。我假设这不是因为信号在后面触发,而是因为这是
trap
运行命令的最早机会。我认为这是shell的限制。pvcm50d14#
它在zsh中工作,没有评估...
4szc88ey5#