Je voulais imprimer deux variables dans une ligne. J'utilise une boucle de script Shell #!/bin/sh
et je voulais faire une répétition de for
qui affiche quelque chose comme:
variable1_case1
variable2_case2
et j'ai déjà essayé
variable$i_case$i.
for i in 1 2; do
echo variable${i}_case$i
done
devrait faire ce que vous voulez. Remplacez 1 2
par les nombres ou les chaînes dont vous avez besoin. En fonction des valeurs de $i
, vous devrez peut-être le citer comme suit: echo variable"$i"_case"$i"
.
Je suppose que le problème dans votre script est que vous essayez d'incorporer les noms de variables directement dans une chaîne de texte, de sorte qu'ils soient suivis par d'autres caractères pouvant faire partie d'un nom de variable. Ceux-ci n'incluent pas seulement des caractères alphanumériques, mais également le trait de soulignement.
Ainsi, si vous souhaitez incorporer des variables dans une chaîne de manière à ce qu'elles ne soient pas séparées du reste par des espaces ou des caractères sans nom de variable, vous pouvez utiliser la notation du nom de variable avec des accolades:
$ i=42
$ echo "variable${i}_case${i}."
variable42_case42.
Peut-être que je me suis trompé de bâton, mais voulez-vous quelque chose comme ça:
#!/bin/sh
while read a b; do
echo variable:${a}_case:${b}
done
qui va créer cette sortie:
/tmp/test.sh < /tmp/dat1
variable:1_case:2
variable:3_case:4
et le fichier de données dat1 contenant:
1 2
3 4