J'essaie d'augmenter les valeurs indx et eindx dans un ssh session.but aucune des commandes travaillent ..Évaluer et assigner des variables à l'intérieur de la session ssh dans le script shell
#!/bin/bash
hosts=(#10.xx.xx.xx)
PdidPrefix1=$1
Runtime=$2
indx=$3
eindx=`expr $indx + $4`
logfilename=$5
for i in "${hosts[@]}"
do
echo $i
ssh [email protected]$i << EOF
for var in {1..4}
do
indx=`expr $eindx + 1` // not working
eindx=$((indx+eindx)) // not working
done
EOF
done
exit
essayé d'utiliser également laissé
let "indx = indx + 1" // ne fonctionne pas
Veuillez nous suggérer la meilleure façon de gérer les variables.
Avez-vous essayé d'utiliser le sigle Heredoc (par exemple, «EOF») pour empêcher l'expansion de variables sur l'hôte local? –
@ DavidC.Rankin..Tried 'EOF' erreur. – SuryaVeepuri
Citer le sigil empêche à la fois l'extension * pathname * et * variable *. C'est un moyen standard d'empêcher les deux. Il semble que le problème que vous avez est que vous voulez que les variables soient développées localement et ensuite les résultats passent via ssh à l'hôte à '$ i'. Bien que cela ne soit pas la cause, en utilisant l'arithmétique '$ ((...))' est correcte, laissez 'expr a + b' dans le passé. Avez-vous essayé avec l'arithmétique $ ((...)) 'dans tous les cas où vous faites des maths? –