Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/04/2017, à 08:52

LukePerp

[Résolu] Intégrer plusieurs paramètres dans une variable

Bonjour,

J'ai une prise de tete depuis plusieurs jours sur les "  et ' des variables et des paramètres.

Considérez les commandes suivantes avec leur sortie. Avec les deux exclude, la sortie est 153.

$ du -sm ~/Documents 
458 /home/utilisateur/Documents
$ du -sm ~/Documents --exclude='aa bb' --exclude='cc dd'
153 /home/utilisateur/Documents

Je souhaite remplacer les deux excludes par une seule variable tel que ça, pour avoir la meme sortie :

$ du -sm ~/Documents "$c"

Mais, je n'arrive pas. J'ai essayé :

$ c=--exclude='aa bb'\ --exclude='cc dd'
$ du -sm ~/Documents "$c"
458 /home/utilisateur/Documents
$ c="\"--exclude='aa bb' --exclude='cc dd'\""
$ du -sm ~/Documents $c
458 /home/utilisateur/Documents
du: cannot access '"--exclude='\''aa': No such file or directory
du: cannot access 'bb'\''': No such file or directory
du: cannot access 'dd'\''"': No such file or directory
$ c="--exclude='aa bb' --exclude='cc dd'"
$ du -sm ~/Documents "$c"
458 /home/utilisateur/Documents
$ du -sm ~/Documents $c
458 /home/utilisateur/Documents
du: cannot access 'bb'\''': No such file or directory
du: cannot access 'dd'\''': No such file or directory

S'il vous plait, pourriez-vous m'aider à corriger mon erreur. Merci

Dernière modification par LukePerp (Le 21/04/2017, à 07:55)


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#2 Le 20/04/2017, à 09:05

pingouinux

Re : [Résolu] Intégrer plusieurs paramètres dans une variable

Bonjour,
Essaye ceci

c="--exclude='aa bb' --exclude='cc dd'"
eval du -sm ~/Documents "$c"

sachant que eval est une commande qui peut être dangereuse.

Hors ligne

#3 Le 20/04/2017, à 09:24

LukePerp

Re : [Résolu] Intégrer plusieurs paramètres dans une variable

pingouinux a écrit :

Bonjour,
eval du -sm ~/Documents "$c"
sachant que eval est une commande qui peut être dangereuse.

Bravo, ça fonctionne ! Mais, effectivement eval est risqué et je préfère continuer à chercher une alternative sécurisée. Une autre idée ? Merci


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#4 Le 20/04/2017, à 09:36

pingouinux

Re : [Résolu] Intégrer plusieurs paramètres dans une variable

Dès l'instant où tu connais exactement ce sur quoi tu appliques eval, il n'y a pas de problème.
C'est un peu comme exécuter un script dont tu connais le contenu.

Hors ligne

#5 Le 20/04/2017, à 12:53

credenhill

Re : [Résolu] Intégrer plusieurs paramètres dans une variable

hello
ou aussi

$ set -- --exclude="aa bb" --exclude="cc dd" 
$ du -sm ~/Documents "$@" 

$ c=(--exclude="aa bb" --exclude="cc dd" )
$ du -sm ~/Documents "${c[@]}"

Hors ligne

#6 Le 21/04/2017, à 07:50

LukePerp

Re : [Résolu] Intégrer plusieurs paramètres dans une variable

credenhill a écrit :

hello
ou aussi

$ set -- --exclude="aa bb" --exclude="cc dd" 
$ du -sm ~/Documents "$@" 

$ c=(--exclude="aa bb" --exclude="cc dd" )
$ du -sm ~/Documents "${c[@]}"

Oulala ! Notation très sophistiquée que je ne connaissais pas.

Avec toutes ces solutions, sujet résolu, merci à vous !


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#7 Le 22/04/2017, à 07:42

credenhill

Re : [Résolu] Intégrer plusieurs paramètres dans une variable

essayer aussi

c="--exclude='aa bb'  --exclude='cc dd' "
bash -c "du -sm ~/Documents $c"

Hors ligne