Команда после установки apt-get не выполняется в скрипте

Я написал вопрос о сбое сервера, но, думаю, он больше подходит для этого сообщества.

Я пишу сценарий, который предназначен для первоначальной настройки моей капли. В этом сценарии я открываю соединение SSH с моим сервером Ubuntu 14.04 следующим образом (с ранее определенными переменными USER и REMOTE):

ssh -t -t $USER@$REMOTE <<'ENDSSH'
ENDSSH

Внутри этого соединения SSH у меня несколько команд который я хочу выполнить - установка Node.js, обновление npm, установка MongoDB и т. д.

Но когда я выполняю команду apt-get install, другие команды не выполняются.

Итак, если у меня есть это:

ssh -t -t $USER@$REMOTE <<'ENDSSH'
sudo apt-get update
sudo apt-get install -y nodejs
sudo apt-get install -y npm
ENDSSH

Команда sudo apt-get install -y npm не будет выполнена. Теперь я знаю, что могу установить несколько пакетов в рамках одной команды apt-get install, но это не то, о чем я спрашиваю, так как другие команды впоследствии не будут выполнены. Этот пример я просто написал из простоты, чтобы я мог объяснить свою проблему. Конкретно, у меня есть эти команды:

ssh -tt $USER@$REMOTE <<'ENDSSH'
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g npm
ENDSSH

Команда sudo npm install -g npm и все, что следует за ней, никогда не выполняется.

Я сталкивался с такими вопросами, как этот , где они говорят, что я должен поставить несколько -t флагов (или -tt) при открытии соединения ssh, что я делаю, но это не т помощь.

Что я делаю не так?

1
задан 13 April 2017 в 15:14

1 ответ

Вы могли бы хотеть закончить свои строки &&, таким образом, сценарий только совершенствуется, когда команда сделана. Пример:

ssh -t -t $USER@$REMOTE <<'ENDSSH'
sudo apt-get update &&
sudo apt-get install -y nodejs &&
sudo apt-get install -y npm
ENDSSH
0
ответ дан 14 April 2017 в 01:14

Другие вопросы по тегам:

Похожие вопросы: