|
|
|
|
Salut a tous,
voila dans un script bash schell, je souahite rediriger (recuperer) la reponse d'une commande dans une variable et non pas dans un fichier .
pour le moment j'ai : ls *.tar > LISTE
Le problème est que la réponse ce trouve dans un fichier nommé LISTE et ce qu'i m'interesse est de recuperer cette liste dans une variable pour faire différent traitement de ces fichier.
Merci d'avance
Commande > file
|
Salut,
var=`commande` //guillemets inverses pour cenrner l'expression (AltGr+7) var=$(commande)Chacun utilise celle qui lui plait, la seconde reste plus lisible à mon gout :) Le probleme de cette affectation, c'est que si la commande renvoie plusieures informations (des champs, des lignes, etc.) il n'y aura qu'une seule variable contenant toute ces données. Il serait plus logique d'avoir un tableau dans ces cas là. En entourant tout l'expression par des parentheses, la variable sera automatiquement du type tableau: var=($(commande))Dans ce cas, Bahs utilise la variable IFS (Internale Field Separator) pour séparer les differents éléments (espace, tabulation, etc.) Comme dans ton cas, ce sont des lignes que tu souhaites récupérer, il faut mettre '\n' (retour chariot) comme unique séparateur de champ. IFS=$'\n'Donc il suffit de deux lignes avant le traitement dans ton script: IFS=$'\n' liste=($(ls *.tar))Voilà, cest une methode de plus, mais qui simplifie pas mal le script :) @++ ♫ Il suffirait de presque rien... |