Bash удалить кавычки для аргумента String - PullRequest
0 голосов
/ 03 июня 2018

Мне нужно выполнить команду в bash, которая принимает сконструированный аргумент.Строковый аргумент должен быть передан без кавычек.Как мне удалить кавычки?

Это не работает:

Tracks='bark.mov'
TrackDir='~/soundtracks/'
TrackPath=$TrackDir$Track
omxplayer -o local $TrackPath

Это не работает:

omxplayer -o local '~/soundtracks/bark.mov'

Это работает:

omxplayer -o local ~/soundtracks/bark.mov

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

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

Tracks=bark.mov
TrackDir=~/soundtracks/
TrackPath=$TrackDir/$Track
omxplayer -o local "$TrackPath"
0 голосов
/ 03 июня 2018

Расширение тильды работает только вне кавычек.Избавьтесь от кавычек при определении переменных, но do включают кавычки при их расширении.

Tracks=bark.mov
TrackDir=~/soundtracks/
TrackPath=$TrackDir$Track
omxplayer -o local "$TrackPath"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...