J’ai envie d’écrire un script qui boucle sur 15 chaînes (tableau peut-être ?) est-ce possible ?
quelque chose comme :
Merci
J’ai envie d’écrire un script qui boucle sur 15 chaînes (tableau peut-être ?) est-ce possible ?
quelque chose comme :
Merci
C’est possible, bien sûr.
Voir Bash boucles, tandis qu’et jusque pour plus de détails.
Aucune de ces réponses ne comprend un compteur ...
#!/bin/bash
## declare an array variable
declare -a array=("one" "two" "three")
# get length of an array
arraylength=${#array[@]}
# use for loop read all values and indexes
for (( i=1; i<${arraylength}+1; i++ ));
do
echo $i " / " ${arraylength} " : " ${array[$i-1]}
done
Sortie:
1 / 3 : one
2 / 3 : two
3 / 3 : three
Dans le même esprit que 4ndrew de réponse:
listOfNames="RA
RB
R C
RD"
# To allow for other whitespace in the string:
# 1. add double quotes around the list variable, or
# 2. see the IFS note (under 'Side Notes')
for databaseName in "$listOfNames" # <-- Note: Added "" quotes.
do
echo "$databaseName" # (i.e. do action / processing of $databaseName here...)
done
# Outputs
# RA
# RB
# R C
# RD
B. Pas d'espaces dans les noms de:
listOfNames="RA
RB
R C
RD"
for databaseName in $listOfNames # Note: No quotes
do
echo "$databaseName" # (i.e. do action / processing of $databaseName here...)
done
# Outputs
# RA
# RB
# R
# C
# RD
Notes
listOfNames="RA RB R C RD"
a la même sortie.D'autres moyens d'attirer les données comprennent:
Lire à partir de stdin.
# line delimited (each databaseName is stored on a line)
while read databaseName
do
echo "$databaseName" # i.e. do action / processing of $databaseName here...
done # <<< or_another_input_method_here
Côtés Notes
IFS='\n'
, ou pour MacOS IFS='\r'
)#!/bin/bash
dans le haut du fichier de script indique que l'environnement d'exécution.D'Autres Sources (tout lire en boucle)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.