![]() |
1
74
你可以从
|
![]() |
2
17
因为这个问题很流行,所以我想添加一个更新的答案,并提供一些附加信息。
通常,在现代系统中,
bash将这些变量设置在
过程
(不是环境)当我们启用
许多系统在默认或系统范围的启动文件中为我们启用此选项(
/ETC/BASHC
或者类似的),所以我们需要记住,这些变量可能并不总是可用的。在某些系统上,如Cygwin,此选项是
不
为我们启用,所以bash不设置
在编写非交互式脚本时,我们通常不想依赖
相反,
如接受答案所示
Puppe
我们可以使用
或者,
这个
上述两种方法都适用于任何POSIX shell。特别是对于bash,我们可以使用 process substitution 要简化前面的示例:
…比
如果出于某种原因,我们仍然想使用
迎头痛击
|
![]() |
3
6
那是不是…(在基于xterm的终端上) |
![]() |
4
5
设置变量。 |
![]() |
5
3
为了完成任务,我要提到的是,设置“checkwinsize”选项正是OP所要寻找的,但有一个要点。在非交互式脚本中,默认情况下是未设置的,但您可以选择在任何脚本的开头添加以下行以启用它:
不幸的是,行和列变量在设置选项时没有立即设置(至少在上次尝试时)。相反,您需要强制bash等待子shell完成,此时它将设置这些变量。因此,针对这个问题的完整bash解决方案是使用以下行启动脚本:
然后,您可以将行和列变量用于心脏的内容,并且每次调整终端的大小时,它们都将重置为正确的值,而无需调用任何外部实用程序。 |
![]() |
6
2
你试过让你的shebang说:
|
![]() |
7
2
运行
|
![]() |
8
1
您可以用其他语言编写一个程序,直接调用这些ioctl来获取tty维,然后使用该程序。
编辑:嗯,原来那个程序已经存在,并且被调用
|
![]() |
9
1
数字会随着窗口大小的改变而改变;陷阱显示脚本正在获取信号绞盘。 |
![]() |
10
0
为什么不在exec命令上使用环境变量,如下所示:
|
![]() |
11
-1
我的经验是,你应该从开始的脚本。脚本“to”run“形式,而不是“scritp”to“run”。简单检查如下:
|
![]() |
pstrg · 批处理回显命令不写入文件[关闭] 1 年前 |
|
Jasper Bart · Path的路径,它有区别吗? 1 年前 |
![]() |
John Beasley · PHP没有读取.env文件 1 年前 |
![]() |
david.perez · 如何在bash中用空格扩展变量 1 年前 |
|
mcmohan_cycle · ENV变量未在渐变过程中更新 1 年前 |