Bash - 如何在调整终端大小时运行功能?

时间:2013-03-20 14:05:23

标签: bash

如何在调整终端大小时运行fce_exitus

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

您可以使用PROMPT_COMMAND。将以下内容放入.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在收到LINES后会更新COLUMNSSIGWINCH,您也可以捕获该信号,而不是使用PROMPT_COMMAND。但是,如果您通过拖动窗口框架调整大小,则在单个终端调整大小期间,shell可能会多次收到SIGWINCH。因此,设置PROMPT_COMMAND的替代方法是

trap 'check_terminal_size' WINCH