Я пытаюсь написать оболочку script, которая автоматизирует некоторые задачи запуска на основе моего местоположения (home/campusA/campusB). Я еду в университет и занимаюсь занятиями в двух разных университетских городках (следовательно, в кампусе A/campusB). Мое местоположение определяется, с какой беспроводной сетью я подключен. Для целей этого script мы можем предположить, что я буду подключен к одной из этих сетей при вызове script, а мой script знает, к какому я подключен, на основе вызова iwconfig
.
Это то, что я хочу сделать:
cat file1 > file2 # always do this, regardless of where I am
if Im at home:
start tweetdeck, thunderbird, skype
else if Im at campusA:
activate the login script # I need to login on a webform before I get internet access.
# I have written a script to automate this.
# Wait for this script to finish before doing anything else
myProg2 & # I want myProg2 running in the background until I shutdown my computer.
else if Im at campusB:
ssh [email protected] # this is the problematic line
myProg2 & # I want myProg2 running in the background until I shutdown my computer.
start tweetdeck, thunderbird
close the terminal with the "exit" command
Проблема в том, что беспроводная сеть campusB находится за брандмауэром, который предоставляет мне доступ в Интернет ТОЛЬКО после того, как я успешно прошел ssh [email protected]
. После успешного ssh мне нужно, чтобы окно терминала было активным, чтобы удерживать доступ в Интернет. Если я закрою окно терминала, я потеряю доступ в Интернет (это плохо).
Когда я пытаюсь сделать только ssh [email protected]
, script останавливается, потому что я не выхожу из команды ssh
. Я не могу ^C
выйти из него, а это значит, что остальная часть script никогда не выполняется. У меня также такая же проблема, если я просто закрываю окно терминала, пытаясь убить сеанс ssh
.
Некоторые поисковики привезли меня в subshell
, который я либо неправильно использую, либо не могу использовать для решения моей проблемы. Итак, как мне решить эту проблему? Я был бы признателен за любую помощь - я был в этом какое-то время и не могу найти ничего полезного. Если это имеет значение, я бы предпочел не хранить мой пароль ssh
в script
Кроме того, амперсандинг вызова ssh
(ssh [email protected] &
), похоже, не приносит пользы (может кто-нибудь объяснить, почему?)
Заранее благодарю
ИЗМЕНИТЬ
Я должен уточнить, что ssh-соединение должно быть активным, чтобы у меня был доступ в Интернет. Таким образом, когда я закрываю окно терминала, мне нужно, чтобы ssh-соединение все еще было активным.