Как добавить путь с пробелом в переменной 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"