2014-09-30 5 views
0

Я хочу отправить два файла в bash и выполнить удаленно через ssh. У меня есть следующий фрагмент кода:Труба двух файлов в bash и запускается удаленно через ssh

#!/bin/bash 
echo "Logging in..." 
ssh -i ~/.ssh/my.pem [email protected] -T "bash -l" < ${MY_HOME}/check.sh 

, который работает, но у меня есть некоторые переменные в другом я хотел бы сделать доступный внутри check.sh удален. Вот что я хочу сломанным способом:

#!/bin/bash 
echo "Logging in..." 
ssh -i ~/.ssh/my.pem [email protected] -T "bash -l" < (${MY_HOME}/vars.sh < ${MY_HOME}/check.sh) 

Есть ли способ сделать это? Вышеуказанное не работает вообще.

ответ

1

Вы почти получили его - вам просто нужно «cat» файлы вместе.

cat ${MY_HOME}/vars.sh ${MY_HOME}/check.sh | ssh -i ~/.ssh/my.pem [email protected] -T "bash -l" 
+0

Спасибо за ответ. Я получаю сообщение об ошибке «bash:/dev/fd/63: Нет такого файла или каталога», когда я пытаюсь это сделать. Это потому, что он создает файл локально, и bash пытается удаленно удалять файл temp/pseudo? –

+0

@ josef.van.niekerk: Да, извините, я обновил свой ответ, вы можете попробовать его снова. –

+0

Гений! Прекрасно работает! Спасибо за ответ! –

Смежные вопросы