Bash-调整终端大小时如何运行函数?

Bash-调整终端大小时如何运行函数?,bash,Bash,调整终端大小时,如何运行fce\u exitus 非常感谢您的帮助。您可以使用提示符\u命令。将以下内容放入.bashrc文件: check_terminal_size () { if [[ "$LINES $COLUMNS" != "$previous_lines $previous_columns" ]]; then fce_exitus fi previous_lines=$LINES previous_columns=$COLUMNS }

调整终端大小时,如何运行
fce\u exitus


非常感谢您的帮助。

您可以使用
提示符\u命令
。将以下内容放入
.bashrc
文件:

check_terminal_size () {
    if [[ "$LINES $COLUMNS" != "$previous_lines $previous_columns" ]]; then
        fce_exitus
    fi
    previous_lines=$LINES
    previous_columns=$COLUMNS
}

PROMPT_COMMAND="check_terminal_size; $PROMPT_COMMAND"

由于
bash
在接收到
SIGWINCH
时更新
,因此您也可以捕获该信号,而不是使用
提示符\u命令
。但是,如果您正在(例如)通过拖动窗口框架调整大小,则shell可能会在单个终端调整大小期间多次收到
SIGWINCH
。因此,设置
PROMPT\u命令的替代方法是

trap 'check_terminal_size' WINCH

什么是
fce_exitus?这是我的定义函数,是系统谢谢,但是是空变量$行和$列吗?为什么?谢谢
应该由
bash
自动设置。如果不是,我没有任何解释。我认为PROMPT_命令只在bash显示新提示之前运行——这意味着您只有在shell中执行某些操作后才能得到更新。您的第二个建议是使用trap,即使您自己不在命令行上执行操作,也会提供持续更新,这可能更好。