Bash에서 SSH를 통해 변수 만들기

Bash에서 SSH를 통해 변수 만들기
#!/bin/bash -x

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

산출:

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

내가 할당해야 하는 변수는 더 복잡하며 내 설명에 표시된 것처럼 연도와 아무 관련이 없습니다.

답변1

EOF를 인용 하지 않으면 <<EOF여기 문서 내의 로컬 셸에 의해 확장이 수행됩니다(따라서 $(date ...)로컬 셸에 의해 확장되고 date로컬 $YY셸의 값(이전에 값을 할당하지 않은 경우 비어 있음)으로 확장됩니다). 이 문서의 내용을 원격 셸에 그대로 전달하려면 EOF어떤 식으로든 인용해야 합니다.

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

관련 정보