Как выполнить скрипт с помощью привязки клавиш в Gnu Screen?

Я хочу прикрепить привязку клавиш для вызова скрипта на экране. Я пробовал «привязать ^k /path/to/script» в своем .screenrc, перезагрузил экран и попробовал 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}

Это ссылка на файл themeindex, который будет содержать число 0-5. А также «файлы темы», которые выглядят так:

#!/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. Различные сеансы будут иметь разный цвет, чтобы их можно было сразу идентифицировать визуально. Сценарий работает сам по себе, если вызывается напрямую, но мне бы очень хотелось, чтобы он был привязан к привязке клавиш.


person user2965351    schedule 07.11.2013    source источник


Ответы (1)


Вместо использования bind ^k /path/to/script вы должны использовать bind ^k exec /path/to/script.

person Community    schedule 08.11.2013
comment
я так и сделал, поменял привязку на ряд букв и все безрезультатно. Скрипт все равно не запускается. Я заставил его работать через псевдоним bash, но для этого мне нужно быть в локальной оболочке. - person user2965351; 08.11.2013
comment
Ну, проблема в вашем скрипте, но это не то, о чем вы спрашиваете. Вы спросили, как выполнить внешнюю программу через привязку клавиш, и вот что вы получили в качестве ответа. - person ; 08.11.2013