Cria uma variável sobre o ssh no bash

0
#!/bin/bash -x

ssh -T root@jumpbox ssh -T root@IP << EOF  
YY=$(date +'%y')  
echo $YY  
EOF  

OUTPUT:

Trying tunnel from jumpbox...  
Pseudo-terminal will not be allocated because stdin is not a terminal.  
-bash: line 6: YY: command not found

A variável que eu preciso atribuir é mais complexa, não é sobre o número do ano, como mostrado na minha descrição.

    
por Tali 04.09.2017 / 10:37

1 resposta

2

Quando você não cita o EOF em <<EOF , as expansões são executadas pelo shell local dentro do documento here (assim, o $(date ...) é expandido pelo local date e $YY é expandido para o valor no shell local (vazio a menos que você tenha atribuído um valor anterior)). Se o conteúdo do documento here for passado literalmente para o shell remoto, você precisa citar o EOF de uma forma ou de outra:

ssh -T root@IP << 'EOF'
YY=$(date +'%y')
echo "$YY"
EOF  
    
por 04.09.2017 / 10:46