web-dev-qa-db-fra.com

Comment ajouter un chemin avec espace dans la variable bash

Comment puis-je ajouter un chemin d'accès avec espace dans une variable bash dans .bashrc? caractère\il n'a pas aidé 

games=/run/media/mohamedRadwan/games\ moves    # this doesn't work
games='/run/media/mohamedRadwan/games  moves'  # or this
games="/run/media/mohamedRadwan/games  moves"  # or this

... quand je cours:

mount $games

... il génère une erreur indiquant qu'il essaye seulement de monter /run/media/mohamedRadwan/games

... mais quand je lance echo $games, il affiche la valeur complète, /run/media/mohamedRadwan/games moves

comment je peux résoudre ça?

mount /dev/sda9 "$games"

Comme mentionné, citez toujours les déréférences variables. Sinon, le shell confond les espaces de la valeur de la variable en tant qu'espaces séparant plusieurs valeurs.

8
bishop

Lorsque la variable contient des espaces, son expansion et ensuite la division de Word entraîne de nombreux arguments, la commande echo affiche tous les arguments, mais un autre programme ou une autre fonction peut gérer les arguments d'une autre manière.

La variable environnante avec des guillemets doubles empêchera les arguments d'être divisés

printf "'%s'\n" $games

printf "'%s'\n" "$games"
1