Como usar uma função de perfil bash para conectar-se remotamente e acessar o terminal remoto

0

Eu quero escrever um bash function localmente (no MacOS), então quando eu executo esta função o primeiro comando é se conectar a um ubuntu Remote Desktop através de ssh .

Em poucas palavras:

    my_func () {
    ssh blah blah blah;
    echo $VARIABLE;
}

A saída desejada é sth como /home/ubuntu/path/to/directory , mas não recebo nada. Então, tenho a impressão de que my_func funciona apenas localmente.

P.S. A variável de ambiente $VARIABLE está definida no ~/.bashrc no ambiente de trabalho remoto.

    
por thanasissdr 06.10.2017 / 00:25

1 resposta

0

Se bem entendi, isso deve funcionar:

my_func () {
    ssh user@ip echo '$VARIABLE'
}

ou se você tiver mais comandos, pode fazer:

my_func () {
    ssh user@ip <<'EOF'
    echo $VARIABLE
    command2
    command3
EOF
}

Você também pode (meu favorito para executar muitos comandos) colocar seus comandos em outro arquivo e fazer isso:

my_func () {
    SOURCE_FILE='/path/to/file'
    cat "$SOURCE_FILE" | ssh user@ip
}
    
por 06.10.2017 / 01:00