Récupérer le quoting des arguments

Marc Chantreux khatar at phear.org
Mon Dec 7 16:16:36 CET 2015


On Mon, Dec 07, 2015 at 03:32:32PM +0100, Daniel Caillibaud wrote:
> Mais je ne veux pas quoter tous les arguments, juste récupérer les quotes telles qu'elles
> étaient dans la ligne de commande initiale, car si je récupère bien un seul
> argument (sans les quotes)
>   --rsh=/usr/bin/ssh -i /path/to/id_rsa
> le passer à rsync avec 
>   rsync "--rsh=/usr/bin/ssh -i /path/to/id_rsa"
> ne va pas donner l'effet escompté 

... 

pourquoi ca ? les quotes ne sont la que pour délimiter une zone ou tu
n'as pas besoin de proteger individuellement les chars (il faut se
rappeller que l'expansion est faite *avant* execution)

donc pour ton shell, toutes ces chaines sont identiques:

--rsh='/usr/bin/ssh -i /path/to/id_rsa' 
'--rsh=/usr/bin/ssh -i /path/to/id_rsa'
--rsh=/usr/bin/ssh' -i /path/to/id_rsa'
--rsh=/usr/bin/ssh\ -i '/path/to/id_rsa' 

du coup je suis pas sur de comprendre ta question:
pourrais-tu tenter d'écrire un cas simple d'un truc qui foire a tes
yeux? (si tu utilisais uze, je te proposerais bien d'écrire un test...)  



-- 
Marc Chantreux (eiro on github and freenode)
http://eiro.github.com/
http://eiro.github.com/atom.xml
"Don't believe everything you read on the Internet"
    -- Abraham Lincoln


More information about the Shell mailing list