使用 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>

之前有人分享过一个解决方案,但后来删除了它,我认为这对我有用。 :)

为什么要加“.”在所有命令前面?

相关内容