Você está dizendo ao shell na outra máquina para obter o arquivo ./variables , que não está presente no pwd desse shell. Passo a passo, parece assim:
-
Este comando se conecta via ssh e envia as linhas do local
test.shssh -i "auth.key" user@host 'bash -s' < test.sh -
As shells remotas são iniciadas pela conexão
sshe, em seguida, obtêm as seguintes linhas:-
#!/bin/bashA interpretação desta linha pelo shell remoto depende do shell que é. A maioria das conchas tratará essa linha como um comentário. Se o shell forsh, o shell remoto não se tornarábash, porque a linha shebang é válida apenas em arquivos de script e os scripts precisam do conjunto de bits executáveis. -
source ./variables.txtAgora, o shell remoto é instruído a origem do arquivovariables.txtno diretório de trabalho atual. Se o arquivo não estiver lá, o shell lançará um erro. No seu caso, o shell é Bash, e o erro é:bash: line 2: ./variables.txt: No such file or directory -
echo $nameComo$nameestá vazio, há apenas uma linha vazia impressa no terminal.
-
Para confirmar isso, coloque um arquivo variables.txt no diretório inicial remoto com uma linha diferente para a origem, por exemplo:
name=remotehost
E execute seu script de teste como antes.