URL: https://linuxfr.org/forums/programmation-shell/posts/bash-construction-dune-ligne-de-commande-dont-certains-argume Title: bash : construction d'une ligne de commande dont certains arguments contiennent des espaces Authors: niol Date: 2010年10月12日T16:02:02+02:00 Tags: Score: 0 Bonjour, Je me heurte à un problème que je peux contourner facilement, mais je voudrais savoir s'il existe une solution. Le problème vient de la manière de passer des arguments avec espaces à une commande appelée par un script bash. La difficulté vient dans la construction conditionnelle de la chaîne qui contient les arguments, et le fait de faire distinguer à bash l'espace et le séparateur d'arguments. L'extrait du programme : #!/bin/bash set -e COWBUILDER_OPTS="--autocleanaptcache --debootstrap=cdebootstrap" REQUESTED_DIST=lucid case $REQUESTED_DIST in £spaces£ £/spaces£# universe is required for ubuntu £spaces£ £/spaces£hardy|jaunty|karmic|lucid|maverick) £spaces£ £/spaces£COWBUILDER_OPTS+=" --components=\"main universe\"" £spaces£ £/spaces£;; esac for opt in $COWBUILDER_OPTS; do echo $opt; done Le résultat : $ ./script --autocleanaptcache --debootstrap=cdebootstrap --components="main universe" Le résultat recherché : $ ./script --autocleanaptcache --debootstrap=cdebootstrap --components="main universe" J'ai évidement essayé les divers échappement possibles, trouvé plusieurs bonnes descriptions du problème (comme [1]), mais aucune solution pour construire correctement ma ligne de commande selon certaines conditions comme l'exemple l'illustre. [1] [http://wiki.bash-hackers.org/syntax/quoting](http://wiki.bash-hackers.org/syntax/quoting) Merci d'avance pour votre aide.

AltStyle によって変換されたページ (->オリジナル) /