GNU/Linux >> Tutoriels Linux >  >> Linux

Linux bash :affectation de plusieurs variables

Parfois, vous devez faire quelque chose de funky. Disons que vous voulez lire à partir d'une commande (l'exemple de date par SDGuero par exemple) mais que vous voulez éviter plusieurs fourches.

read month day year << DATE_COMMAND
 $(date "+%m %d %Y")
DATE_COMMAND
echo $month $day $year

Vous pouvez également diriger la commande read, mais vous devrez alors utiliser les variables dans un sous-shell :

day=n/a; month=n/a; year=n/a
date "+%d %m %Y" | { read day month year ; echo $day $month $year; }
echo $day $month $year

aboutit à...

13 08 2013
n/a n/a n/a

Première chose qui me vient à l'esprit :

read -r a b c <<<$(echo 1 2 3) ; echo "$a|$b|$c"

la sortie est, sans surprise

1|2|3

Je voulais attribuer les valeurs à un tableau. Donc, prolongeant l'approche de Michael Krelin, j'ai fait :

read a[{1..3}] <<< $(echo 2 4 6); echo "${a[1]}|${a[2]}|${a[3]}"

ce qui donne :

2|4|6 

comme prévu.


Je pense que cela pourrait aider...

Afin de décomposer les dates saisies par l'utilisateur (mm/jj/aaaa) dans mes scripts, je stocke le jour, le mois et l'année dans un tableau, puis je place les valeurs dans des variables distinctes comme suit :

DATE_ARRAY=(`echo $2 | sed -e 's/\// /g'`)
MONTH=(`echo ${DATE_ARRAY[0]}`)
DAY=(`echo ${DATE_ARRAY[1]}`)
YEAR=(`echo ${DATE_ARRAY[2]}`)

Linux
  1. Transformation automatique des nouvelles lignes dans l'affectation de variables Shell ?

  2. Lire des valeurs dans une variable shell à partir d'un tube

  3. Masquer l'entrée utilisateur sur le terminal dans le script Linux

  4. Comment supprimer plusieurs fichiers à la fois dans Bash sous Linux ?

  5. Comment puis-je compter le nombre de caractères dans une variable Bash

Variable d'exportation bash

16 exemples de commandes Echo sous Linux

Commande de lecture bash

La commande Bash Echo expliquée avec des exemples sous Linux

Comment utiliser la commande echo dans les scripts Bash sous Linux

Vérifier si une variable existe dans une liste dans Bash