et un peu de mise en forme pour agrémenter la (re-)lecture, avec ```bash au début (tu peux éditer ton entrée de forum), comme ça cela présentera quasiment comme sur pastebin :
declare -a disk=$(lsblk -l -d -p -n -o NAME,TYPE | awk '(2ドル=="disk"){print 1ドル}')echo"${#disk[@]}"for d in "${disk[@]}"doecho"COMMENCEMENT"echo"$d"DISK=$dDISK_sub="$(basename $d)"TYPE="$(smartctl -a $DISK| grep 'Rotation Rate:'| awk '{print 3ドル4ドル5ドル}')"if["$TYPE"="SolidStateDevice"];thenelif["$TYPE" !="SolidStateDevice"];thenfidoneexit0
declare c'est nouveau en bash ? (jamais utilisé...)
man bash m'indique :
Un tableau indicé est créé automatiquement si une variable quelconque est affectée en utilisant la syntaxe nom[indice]=valeur. L'indice est traité comme une expression
arithmétique et doit s'évaluer en un nombre. declare -a nom permet de déclarer explicitement un tableau indicé (consultez COMMANDES INTERNES DE L'INTERPRÉTEUR ci-des‐
sous). declare -a nom[indice] est aussi accepté ; l'indice est ignoré.
Les tableaux associatifs sont créés en utilisant declare -A nom.
Des attributs peuvent être indiqués pour une variable tableau en utilisant les commandes internes declare et readonly. Les attributs s'appliquent à tous les éléments
d'un tableau.
pfiou, va falloir que je relise attentivement le man, j'y vois d'autres nouveautés (pour moi... dès les variables de l'interpréteur o_O)
bon, concrètement : $disk[@] contient
"/dev/sda\n/dev/sdb" (donc deux lignes, 1 seul élément, ce qu'affiche correctement echo ${#disk[@]} : 1)
et pour ta boucle, comme il y a un retour chariot, j'utilise plutôt la forme :
echo${disk[@]}|whileread d ;doecho"disque $d"done
avec une boucle while... j'ai jamais trop aimé les for :p
[^] # Re: Variable
Posté par BAud (site web personnel) . En réponse au message Conseil script bash : script automatique d'analyse d'HDD/SSD sur PC. Évalué à 3.
et un peu de mise en forme pour agrémenter la (re-)lecture, avec ```bash au début (tu peux éditer ton entrée de forum), comme ça cela présentera quasiment comme sur pastebin :
declarec'est nouveau en bash ? (jamais utilisé...)man bash m'indique :
pfiou, va falloir que je relise attentivement le
man, j'y vois d'autres nouveautés (pour moi... dès les variables de l'interpréteur o_O)bon, concrètement :
$disk[@]contient"/dev/sda\n/dev/sdb" (donc deux lignes, 1 seul élément, ce qu'affiche correctement
echo ${#disk[@]}: 1)et pour ta boucle, comme il y a un retour chariot, j'utilise plutôt la forme :
avec une boucle while... j'ai jamais trop aimé les
for:p