Выполнить несколько команд на удаленной машине - PullRequest
2 голосов
/ 22 марта 2012

В следующей команде я пытаюсь выполнить команды ssh и выполнить несколько команд. Как я могу выйти, если какая-либо из команд не выполнена, т.е. если! удаленная машина. Как я могу добиться этого

 ssh login.com "git clone --bare new@login2.com/repo/ /home/usr1/repo/ && \
                cd /home/usr1/repo/info/                               && \
                echo "hello world" > .a.txt"

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Просто убедитесь, что ваши кавычки не конфликтуют:

ssh login.com \
   'git clone --bare new@login2.com/repo/ /home/usr1/repo/ &&
    cd /home/usr1/repo/info/ &&
    echo "hello world" > .a.txt'

Это предполагает, что вы хотите оставить .txt на сервере, в противном случае L

ssh login.com \
   'git clone --bare new@login2.com/repo/ /home/usr1/repo/ &&
    cd /home/usr1/repo/info/ &&
    echo "hello world"' > .a.txt
1 голос
/ 22 марта 2012

То, что у вас там будет, будет делать это - цепочка && будет означать, что следующая команда будет выполнена, только если предыдущая была успешной.

$ true && false && echo "here"
$ true && true && echo "here"
here
$
...