EOI 또는 EOSSH를 사용하여 명령 앞에 점을 추가하여 SSH 스크립트를 원격으로 실행합니다.

EOI 또는 EOSSH를 사용하여 명령 앞에 점을 추가하여 SSH 스크립트를 원격으로 실행합니다.

여기서 첫 번째 블록은 실행 중이고 두 번째 블록은 실행되지 않습니다. 문제는 EOI가 공백을 점으로 취급한다는 것입니다. 그러나 탭을 점으로 처리하지 않습니다. 들여쓰기가 나에게 효과적이지 않습니다. 하지만 탭이나 공백이 점으로 처리되지 않도록 지정하는 방법이 있나요?

ssh -tt -vvv -i $pathToPem -o StrictHostKeyChecking=no $sshUsernameIp << EOI

    sudo rm -rf letsencrypt.tar.gz
    sudo rm -rf /etc/letsencrypt
    sudo rm -rf /usr/local/share/ca-certificates/chain.crt

    sed -e 1b -e '$!d' $remote_home_dir/.bashrc
    sudo add-apt-repository ppa:certbot/certbot -y
    sudo apt-get install certbot -y &
    exit
    trap exit INT

EOI
###############
ssh -tt -vvv -i $pathToPem -o StrictHostKeyChecking=no $sshUsernameIp << EOI

    sudo certbot certonly -n --agree-tos --register-unsafely-without-email --standalone -d $FQDN
    sudo chown -R root:sudo /etc/letsencrypt/
    sudo chmod -R 750 /etc/letsencrypt/
    sudo chmod -R 644 /usr/local/share/
    sudo cp /etc/letsencrypt/live/$FQDN/chain.pem /usr/local/share/ca-certificates/chain.crt
    sudo update-ca-certificates
    sudo tar -czvf letsencrypt.tar.gz /etc/letsencrypt
    exit

EOI

고쳐 쓰다 이제 첫 번째 부분이 작동하고 ############### 줄에서 시작하는 두 번째 부분으로 이동하면 다음이 표시됩니다.

Command '.sudo' not found, did you mean:

  command 'sudo' from deb sudo
  command 'sudo' from deb sudo-ldap

Try: sudo apt install <deb name>

이전에 누군가가 솔루션을 공유했다가 삭제했는데, 이것이 제게는 효과가 있을 것 같습니다. :)

모든 명령 앞에 "."을 추가하는 이유는 무엇입니까?

관련 정보