BASH - comment puis-je obtenir la valeur de la variable dans les balises EOF?
J'ai ce script suivant, mais j'ai besoin d'obtenir $i valeur de la variable de travail à l'intérieur de chaque bloc de départ avec des expressions du FOLKLORE et se terminant avec des expressions du FOLKLORE.
ses pas la lecture de la valeur de la variable, mais de mettre $i
/var/tmp/vpn.sh j'ai:
#!/bin/bash
amazonEth0="10.0.0.18"
amazonWan0="4.9.2.9"
vpnServer="4.8.8.6"
hosttoHost1="10.109.0.20/32"
hosttoHost2="10.109.0.21/32"
hosttoHost3="10.109.58.6/32"
hosttoHost4="10.109.59.3/32"
for i in 1 2 3 4
do
cat > /tmp/test$i.conf << \EOF
#Step 3
conn test"$i"
#auto=start
type=tunnel
authby=secret
pfs=no
aggrmode=no
ikelifetime=28800s
lifetime=3600s
ike=aes128-md5;modp1024!
phase2alg=aes128-md5;modp1024
forceencaps=yes
left=$amazonLan0
leftid=$amazonWan0
leftsourceip=$amazonWan0
right=$vpnServer
rightsubnet=$hosttoHost$i
EOF
done
### Run me
cat > /var/tmp/vpn.sh << \EOF
service ipsec restart
######## Apply for loop here, instead of many many lines ###########
# for i in 1 2 3 4
# do
# ipsec auto --add test$i
# done
ipsec auto --add test1
ipsec auto --add test2
ipsec auto --add test3
ipsec auto --add test4
######## Apply for loop here, instead of many many lines ###########
# for i in 1 2 3 4
# do
# ipsec auto --up test$i
# done
ipsec auto --up test1
ipsec auto --up test2
ipsec auto --up test3
ipsec auto --up test4
ipsec auto --status
ip xfrm policy
ip route show
######## Apply for loop here, instead of many many lines ###########
# for i in 1 2 3 4
# do
# ping -c 1 $hosttoHost$i
# done
ping -c 1 10.109.0.20;
ping -c 1 10.109.0.21;
ping -c 1 10.109.58.6;
ping -c 1 10.109.59.3;
EOF
chmod +x /var/tmp/vpn.sh
# Cake - eat now - optional
/var/tmp/vpn.sh > save output | mail -s ipsec date time &
source d'informationauteur YumYumYum
Vous devez vous connecter pour publier un commentaire.
Supprimer la barre oblique inverse avant
EOF
:Pour obtenir votre dernière ligne de l'affichage
rightsubnet="10.109.0.20/32"
(pour i=1), vous besoin de quelque chose comme ceci:Qui est, vous calculez le nom de la variable que vous souhaitez, placez-le dans une autre variable, et l'utilisation de la
${!var}
syntaxe.Mais pour ce genre de chose que vous devriez plutôt utiliser un tableau:
Note cependant que les indices commencent à 0.