Как добавить путь с пробелом в переменной bash

как я могу добавить путь с пробелом в переменной bash .bashrc следующее ? Я хочу сохранить некоторые переменные .bashrc и путей и я столкнулся с path с пробелом в нем, я попытался добавить его между "' или использовать escape-символ это не помогло

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

...когда я бегу:

mount $games

...он выдает ошибку, указывающую, что он только пытается смонтировать /run/media/mohamedRadwan/games

...но когда я бегу echo $games, он показывает полное значение,/run/media/mohamedRadwan/games moves

как я могу решить это ?

2 ответов


mount /dev/sda9 "$games"

Как уже упоминалось, всегда указывайте переменные разыменования. В противном случае оболочка путает пробелы в значении переменной как пробелы, разделяющие несколько значений.


когда переменная содержит пробелы, расширение переменной, а затем разделение слов приведет ко многим аргументам, команда echo отобразит все аргументы, но другая программа или функция может обрабатывать аргументы по-другому.

окружающая переменная с двойными кавычками предотвратит разбиение аргументов

printf "'%s'\n" $games

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