В сценарии bash я хочу работать со значением, хранящимся в системе по умолчанию. Чтобы получить значение, я делаю:Возможно ли в bash работать с папкой, содержащей тильду (~) и пробелы?
defaults read my.domain my_key
#returns "~/Dropbox (My Company)/"
Когда я следующий в Баш скрипт, тильды (~) не получает вспученные (я удалил обработку из-за краткости ошибки):
my_key=$(defaults read my.domain my_key)
echo $my_key
#output: "~/Dropbox (My Company)/"
в принципе, проблема демонстрируется следующим образом:
my_key='~/Dropbox (My Company)/'
echo $my_key
тильда не расширена, так как имя файла в кавычки (не уверен, если это работает точно так же, как это). Когда я хочу, чтобы заставить тильды, это жалобы о кронштейнах (-bash: syntax error near unexpected token '('
):
eval my_key='~/Dropbox (My Company)/'
На данный момент, я просто сохранить полный путь в системе по умолчанию (по умолчанию написать my.domain my_key -string «/ Users/xxx/Dropbox (Моя компания) "), поэтому мне не нужно расширение. Но я думаю, что он должен работать с расширением, пробелами и скобками.
Я ищу разумное решение.
Соответствует ли '/ Users/xxx /' значению '$ HOME' для этого пользователя? – Inian
Как '' 'получить в этом значении? Он не должен был использоваться в первую очередь. Это ярлык, специфичный для оболочки для имени пути, и не должен использоваться для * сохранения * имени пути. – chepner
@ Иниан: да, это так. Я просто не хотел указывать свое имя пользователя в stackoverflow. – doekman