saveIFS="$IFS"
IFS=$'\n'
array=($(<file))
IFS="$saveIFS"
echo ${array[0]}# output: EXAMPLEfoo
echo ${array[1]}# output: EXAMPLEbarfor i in"${array[@]}";do echo "$i";done# iterate over the array
Edit:
La boucle dans votre pastebin a quelques problèmes. Ici, c'est que vous avez affiché:
for i in"${array[@]}";do echo " "AD"$count = "$i""; $((count=count+1));done
Ici, il est comme il doit être:
for i in"${array[@]}";do declare AD$count="$i";((count=count+1));done
ou
for i in"${array[@]}";do declare AD$count="$i";((count++));done
Mais pourquoi ne pas utiliser le tableau directement? On pourrait appeler cela ANNONCE au lieu de tableau et au lieu d'accéder à une variable appelée "AD4" vous devez accéder à un élément de tableau "${AD[4]}".
Cela peut être fait soit avec un tableau si vous n'avez pas besoin de ces variables comme des entrées à un script. push() fonction levée à partir de la De Script Avancées Guide De L'
push()# Push item on stack.{if[-z "$1"]# Nothing to push?thenreturnfi
let "SP += 1"# Bump stack pointer.
stack[$SP]=$1
return}
P. S.
Rien ne sera plus jamais travailler, si vos noms sont cités ou contenir des tirets.
Si vous avez quelque chose comme ça, comme c'est le cas avec VBoxManage de sortie ("IDE-1-0"="emptydrive" et ainsi de suite), soit egrep seulement des valeurs spécifiques, comme indiqué dans mon exemple, ou silence les erreurs.
Cependant, faire taire erors est toujours dangereux. Vous ne savez jamais, lors de la prochaine valeur devra non cotées "*" dans celui-ci, donc vous devez traiter les valeurs chargé de cette manière, très prudent, avec toutes les précautions nécessaires.
Je voudrais améliorer le ci-dessus par se débarrasser de la variable temporaire s:
Et si vous avez comme entrée un fichier comme ceci
Vous pouvez utiliser à la suite de construire pour obtenir les variables nommées.
OriginalL'auteur
bash_command.sh recevrez ces lignes comme arguments
OriginalL'auteur
Edit:
La boucle dans votre pastebin a quelques problèmes. Ici, c'est que vous avez affiché:
Ici, il est comme il doit être:
ou
Mais pourquoi ne pas utiliser le tableau directement? On pourrait appeler cela ANNONCE au lieu de tableau et au lieu d'accéder à une variable appelée "AD4" vous devez accéder à un élément de tableau "${AD[4]}".
voir mon edit.
OriginalL'auteur
Cela peut être fait soit avec un tableau si vous n'avez pas besoin de ces variables comme des entrées à un script.
push()
fonction levée à partir de la De Script Avancées Guide De L'Le contenu de
/tmp/test
Puis
OriginalL'auteur
Aucun des ci-dessus fonctionne, si vos valeurs sont indiqués par des espaces.
Cependant, pas everythinf est perdu.
Essayez ceci:
P. S.
Rien ne sera plus jamais travailler, si vos noms sont cités ou contenir des tirets.
Si vous avez quelque chose comme ça, comme c'est le cas avec VBoxManage de sortie ("IDE-1-0"="emptydrive" et ainsi de suite), soit
egrep
seulement des valeurs spécifiques, comme indiqué dans mon exemple, ou silence les erreurs.Cependant, faire taire erors est toujours dangereux. Vous ne savez jamais, lors de la prochaine valeur devra non cotées "*" dans celui-ci, donc vous devez traiter les valeurs chargé de cette manière, très prudent, avec toutes les précautions nécessaires.
OriginalL'auteur