Re: [technique] Des espaces dans les arguments d'un script

[ Thread Index | Date Index | More alpinux.org/technique Archives ]


Le 05/12/2017 à 22:22, toufalk a écrit :
> Salut à tous,
>
> J'ai un script qui traite les arguments qu'on lui donne sur la ligne de
> commande. Ceux-ci peuvent être contenir des espaces. Dans le shell, ça
> marche bien:
>
> $ ./script.sh "ab" "cd ef"
> 2 args:
> ab
> cd ef
>
> Le truc c'est que les arguments sont nombreux et je voudrais les stocker
> dans un fichier et les envoyer au script. Évidemment, ça ne marche pas à
> cause des espaces :
>
> $ cat fic
> ab
> cd ef
> $ ./script $(cat fic)
> 3 args:
> ab
> cd
> ef
>
> J'ai aussi vu un contournement avec un read:
>
> $ while read line; do ./script "$line"; done < fic
> 1 args:
> ab
> 1 args:
> cd ef
>
> mais je voudrais tous les arguments dans le même processus, pas sur des
> appels différents.
>
> Je précise aussi que je ne peux pas modifier le comportement du script
>
> Quelqu'un a-t-il une idée ?
>
> Vincent
>
>

Bonjour,


Pas sur que ça marche, mais la variable d'environnement $IFS conditionne
la séparation des arguments des commandes. Elle contient <espace> par
défaut, mais on peut la surcharger localement. Elle apparaît dans la
page de man de bash.


JN




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/