#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)
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
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
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
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
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
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 !
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
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