2 votes

Imprimer deux variables sur une ligne

Je voulais deux impressions de variables en une seule ligne. J'utilise un Shell Shell. #!/bin/sh et ce que je voulais faire, c'est une for répéter qui imprime quelque chose comme :

variable1_case1
variable2_case2

et j'ai déjà essayé

variable$i_case$i.

5voto

dessert Points 36815
for i in 1 2; do
  echo variable${i}_case$i
done

devrait faire ce que vous voulez. Substitut 1 2 avec les chiffres ou les chaînes de caractères dont vous avez besoin. En fonction des valeurs de $i vous devrez peut-être le citer comme ça : echo variable"$i"_case"$i" .

4voto

Byte Commander Points 99026

Je suppose que le problème dans votre script est que vous essayez d'intégrer les noms de variables directement à l'intérieur d'une chaîne de texte, de sorte qu'ils sont suivis d'autres caractères qui pourraient faire partie d'un nom de variable. Il ne s'agit pas seulement de caractères alphanumériques, mais aussi de l'underscore.

Ainsi, si vous souhaitez intégrer 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 autres que des noms de variables, vous pouvez utiliser la notation des noms de variables avec des accolades à la place :

$ i=42
$ echo "variable${i}_case${i}."
variable42_case42.

0voto

Stefan Points 306

Peut-être que j'ai pris le mauvais côté du 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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X