Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

astuce bash

3 réponses
Avatar
wep
bonjour,

Je suis peut être hors-charte, veuillez m'en excuser...

Impossible de remettre la main sur cette astuce:
dans un script bash, avec la commande:
sudo blkid
j'obtiens des lignes du genre:
/dev/sdb1: UUID="A420-474B" TYPE="vfat" SEC_TYPE="msdos" LABEL="UINIX"

Je souhaiterai pouvoir 'récupérer' ces données directement en variables;
exemple, après traitement:
la variable UUID contiendrait "A420-474B"
la variable TYPE contiendrait "vfat"
(...)
Je veux donc récupérer chaque nom de variable et son contenu.
Comment faire cette opération proprement ?

merci,
jip

3 réponses

Avatar
Jean-Pierre
wep wrote:

bonjour,

Je suis peut être hors-charte, veuillez m'en excuser...

Impossible de remettre la main sur cette astuce:
dans un script bash, avec la commande:
sudo blkid
j'obtiens des lignes du genre:
/dev/sdb1: UUID="A420-474B" TYPE="vfat" SEC_TYPE="msdos" LABEL="UINIX"

Je souhaiterai pouvoir 'récupérer' ces données directement en variables;
exemple, après traitement:
la variable UUID contiendrait "A420-474B"
la variable TYPE contiendrait "vfat"
(...)
Je veux donc récupérer chaque nom de variable et son contenu.
Comment faire cette opération proprement ?

merci,
jip



bonjour,

avec cut (man cut) ou sed (mais il faut déjà pratiquer le bash) tu
trouveras ton bonheur mais avant tout il faudra te lancer dans
l'apprentissage du bash mais je crois que le jeu en vaut la chandelle car
c'est proprement hallucinant tout ce qu'on peut faire avec cet outil
fantastique qu'est la ligne de commande.

à voir si tu as vraiment envie de t'investir (important : tout en
français!) :
http://eric-sanchis.developpez.com/linux/shell/bash/
puis
http://abs.traduc.org/abs-5.3-fr/

Sinon tu devrais plutôt poser ta question fr.comp.os.unix en te présentant
bien comme débutant.

bon courage!
--

Ah l'informatique! Ou pourquoi faire simple quand on peut faire
compliqué!...

Jean-Pierre.
Avatar
François Patte
Le 18.09.2008 08:03, wep a écrit :
bonjour,

Je suis peut être hors-charte, veuillez m'en excuser...

Impossible de remettre la main sur cette astuce:
dans un script bash, avec la commande:
sudo blkid
j'obtiens des lignes du genre:
/dev/sdb1: UUID="A420-474B" TYPE="vfat" SEC_TYPE="msdos" LABEL="UINIX"

Je souhaiterai pouvoir 'récupérer' ces données directement en variables;
exemple, après traitement:
la variable UUID contiendrait "A420-474B"



Quelque chose comme:

UUID=`/sbin/blkid /dev/sdb1 | cut -d= -f2 | cut -d" " -f1`

echo $UUID

Voir man cut....


--
François Patte
Université Paris 5 - Paris
Avatar
wep
Bonsoir,

En cherchant pas mal, j'ai finalement appliqué cette solution:
exemple: ma variable LIGNE contient:
/dev/sdb1: UUID="A420-474B" TYPE="vfat" SEC_TYPE="msdos" LABEL="UINIX"

- je ne conserve qu'à partir du deuxième champ:
LIGNE=`echo $LIGNE | cut -d' ' -f2- `

- il reste donc dans LIGNE:
UUID="A420-474B" TYPE="vfat" SEC_TYPE="msdos" LABEL="UINIX"

- et là un simple:
eval $LIGNE

et le tour est joué:
dans cet exemple, les variables UUID, TYPE, SEC_TYPE et LABEL sont créées
dans le script et 'contiennent' bien les valeurs voulues.

merci à tous,

jip