Переменная оболочки содержит ~, который не был правильно проанализирован - PullRequest
0 голосов
/ 30 мая 2020

Назначением является переменная среды,

destination = ~ / Desktop

d=`date +%F-%H%M%S`

filename=${destination}/${d}.{query}

touch $filename

при выполнении команды , он сообщает об ошибке. потому что ~ обрабатывается как строка.

имя файла ~ / Desktop / 2020-05-30-120306. json, ~ не распознается.

Итак, как это сделать, мне нужно ~ чтобы распознать правильно

1 Ответ

0 голосов
/ 30 мая 2020

Вот ссылка . Здесь описаны два способа сделать это. Первый из них с использованием eval (что опасно):

d=`date +%F-%H%M%S`

eval destination="~/Desktop" 
query="json" 
filename=${destination}/${d}.${query}

touch $filename

Второй из них более безопасен и рекомендуется.

d=`date +%F-%H%M%S`

destination="~/Desktop"
query="json"
filename=${destination/#\~/$HOME}/${d}.${query}

touch $filename

Не уверен, как вы устанавливаете $destination так что вам, возможно, придется поэкспериментировать с этим, но они оба у меня сработали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...