3

Каждый раз, когда я запускаю ssh (или scp или lftp), я хотел бы сначала запустить gpg-connect-agent updatestartuptty /bye . (Это долгая история.)

В настоящее время у меня есть функция, определенная в моем .bashrc:

ssh()
{
  gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1
  $(which ssh) "$@"
}

Это работает просто отлично, но я представляю, что могут возникнуть проблемы с переносимостью, если использовать их в другой системе, где ssh уже имеет аналогичные псевдонимы для чего-то другого.

Есть ли способ определить "обратный вызов" перед выполнением в ssh без переопределения самой команды ssh ? (Я знаю, что вы можете использовать trap DEBUG для запуска данной команды перед КАЖДОЙ командой, но я бы хотел ограничить это только теми командами, которые мне нужны.)

1 ответ1

1

Я предлагаю вместо этого написать так:

ssh()
{
  gpg-connect-agent updatestartuptty /bye &>/dev/null
  command ssh "$@"
}

Смотрите help command для более подробной информации.

И нет, нет другого "механизма предварительного вызова". Если есть, то, что вы делаете, это в основном "это".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .