如何通过Gnu屏幕中的键绑定执行脚本?

时间:2013-11-07 15:24:30

标签: linux bash themes keyboard-shortcuts gnu-screen

我想附加一个键绑定来调用屏幕中的脚本。我在我的.screenrc中尝试了“bind ^ k / path / to / script”,重新加载了屏幕并尝试了C-a-k和C-k并且没有执行任何操作。

有问题的剧本:

#!/bin/bash

INDEXFILE="$HOME/bin/screen/themes/theme_index"

# if this is the first time then set
# the index to 0

if [[ ! -e $INDEXFILE ]]
then
  echo 0 > $INDEXFILE
fi

THEMENO=`cat $INDEXFILE`

THEMEMAX=5

if [[ $THEMENO -eq $THEMEMAX ]]
then
  THEMENO=0
else
  THEMENO=`expr $THEMENO + 1`
fi 

echo $THEMENO > $INDEXFILE

THEMEFILE=$HOME/bin/screen/themes/theme${THEMENO}

这引用了一个包含数字0-5的themeindex文件。以及“主题文件”,如下所示:

#!/bin/bash

# yellow

SESSION=$1

screen -S $SESSION -X caption always "%{= KW}%-w%{= Yk}%n %t%{-}%+w %-="
screen -S $SESSION -X hardstatus alwayslastline "%{= kW} %-= %{= kY}Session: %u%{= kW}%5\` | %{= kY}Host:%{= kW} %H | %{= kY} Uptime:%{= kW} %4\` | %{= kY} MEM:%{= kW} %2\`MB |%{= kY} SW: %{= kW}%3\`MB | %{= kY} DATE:%{= kW} %m/%d/%y %C %A"

基本上允许我更改Gnu Screen主题的颜色。不同的会话将是不同的颜色,以便在视觉上更直接地识别。如果直接调用脚本就可以自己运行,但我真的希望它附加到一个键绑定。

1 个答案:

答案 0 :(得分:0)

您应该使用bind ^k /path/to/script

,而不是使用bind ^k exec /path/to/script