Я пытаюсь написать сценарий оболочки, который автоматизирует определенные задачи запуска в зависимости от моего местоположения (home / campusA / campusB).Я иду в университет и беру уроки в двух разных кампусах (отсюда и кампус A / campusB).Мое местоположение определяется тем, к какой беспроводной сети я подключен.Для целей этого сценария мы можем предположить, что я буду подключен к одной из этих сетей, когда сценарий вызывается, и мой сценарий знает, к какой из них я подключен, основываясь на вызове iwconfig
.
* 1003.* Это то, что я хочу сделать:
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 username@domain # 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 по username@domain
.После успешного ssh мне нужно держать окно терминала активным, чтобы держать доступ в интернет.Если я закрываю окно терминала, я теряю доступ в интернет (это плохо).
Когда я пытаюсь сделать просто ssh username@domain
, сценарий останавливается, потому что я не выхожу из команды ssh
.Я не могу ^C
из этого, что означает, что остальная часть сценария никогда не выполняется.У меня также возникает та же проблема, если я просто закрываю окно терминала, пытаясь убить сеанс ssh
.
Некоторое приближение привело меня к subshell
, и я тоженеправильно или не могу использовать, чтобы решить мою проблему.Так как же мне идти к решению этой проблемы?Буду признателен за любую помощь - я уже давно занимаюсь этим и не могу найти ничего полезного.Если это имеет значение, я бы предпочел не хранить свой пароль ssh
в скрипте
Кроме того, амперсандирование вызова ssh
(ssh username@domain &
), похоже, не принесет пользы (может кто-нибудьобъясните почему?)
Заранее спасибо
РЕДАКТИРОВАТЬ
Я должен уточнить, что соединение ssh должно быть активным, чтобы я могесть доступ в интернет.Таким образом, когда я закрываю окно терминала, мне нужно, чтобы соединение ssh оставалось активным.