Script Bash - Chat EOF rupture
Je suis d'essayer d'utiliser le chat EOF d'écrire un script bash pour installer automatiquement un script cron, cette partie, c'est de casser le script et je ne sais pas où je vais mal. Pour une raison quelconque, le script est en cours d'exécution de ces commandes avant d'en écho à /etc/no-ip.sh
echo "#!/bin/sh" >> /etc/no-ip.sh
echo "HOSTNAME=hostname" >> /etc/no-ip.sh
echo "LOGFILE=no-ip-log" >> /etc/no-ip.sh
echo " " >> /etc/no-ip.sh
echo "Current_IP=$(host $HOSTNAME | cut -f4 -d' ')" >> /etc/no-ip.sh
echo " " >> /etc/no-ip.sh
echo "if [ ! -s $LOGFILE ] ; then" >> /etc/no-ip.sh
echo "echo "sshd : $Current_IP : allow" >> /etc/hosts.allow" >> /etc/no-ip.sh
echo "echo $Current_IP > $LOGFILE" >> /etc/no-ip.sh
echo "else" >> /etc/no-ip.sh
echo " " >> /etc/no-ip.sh
echo "Old_IP=`head -n 1 /etc/no-ip-log`" >> /etc/no-ip.sh
echo " " >> /etc/no-ip.sh
echo "if [ "$Current_IP" = "$Old_IP" ] ; then" >> /etc/no-ip.sh
echo "echo IP address has not changed" >> /etc/no-ip.sh
echo "else" >> /etc/no-ip.sh
echo "sed -i 's/'$Old_IP'/'$Current_IP'/' /etc/hosts.allow" >> /etc/no-ip.sh
echo "echo $Current_IP > $LOGFILE" >> /etc/no-ip.sh
echo "echo iptables have been updated" >> /etc/no-ip.sh
echo "fi" >> /etc/no-ip.sh
echo "fi" >> /etc/no-ip.sh
echo "EOF" >> /etc/no-ip.sh
Vous devez vous connecter pour publier un commentaire.
Certaines choses à l'intérieur de guillemets doubles encore évaluées, telles que:
Ici, le
$(...)
construction est évalué. Si vous souhaitez utiliser des guillemets simples autour de l'ensemble de la chose:Et similaire pour les autres lignes.
Cela dit, un heredoc est probablement la meilleure méthode pour écrire cela. Vous aurez besoin de citer votre délimiteur de chaîne de caractères pour obtenir le corps à être interprétée littéralement: