Ver valor remoto de $ PATH dentro do shell script

3

Ao executar este script bash, ele mostra apenas o meu caminho local.

ssh ${REMOTE_HOST} 'bash -s' <<EOL
    set -e
    source ~/.profile
    echo $PATH
    # Commands here don't work because $PATH is not set properly.
    # How can I see what $PATH is set to here?
EOL

Como posso ver o valor remoto de $PATH para depurar isso?

    
por Flash 03.07.2015 / 04:00

1 resposta

4

O $PATH está sendo expandido antes de ser executado no servidor remoto.

Exemplo # 1

Digamos que eu execute esses comandos em um sistema chamado skinner.bubba.net.

[root@skinner ~]# ssh mulder 'bash -s' <<EOL
>   echo $HOSTNAME
>   hostname
> EOL
skinner.bubba.net
mulder.bubba.net

Ao mover a aspa simples para que o echo $HOSTNAME esteja dentro dela, você pode proteger a variável de ser expandida pelo shell Bash do skinner.

[root@skinner ~]# ssh mulder 'bash -s <<EOL
>   echo $HOSTNAME
>   hostname
> EOL'
mulder.bubba.net
mulder.bubba.net

Exemplo # 2

O outro método seria escapar do $HOSTNAME com uma barra, que diz ao Bash que você deseja enviar um sinal de dólar literal.

[root@skinner ~]# ssh mulder 'bash -s' <<EOL
>   echo \$HOSTNAME
>   hostname
> EOL
mulder.bubba.net
mulder.bubba.net
    
por 03.07.2015 / 04:14