2016-02-02 9 views
0

Следующее расширение тильды работает, как ожидалось.Как выполнить расширение тильды для нескольких путей, заданных в переменной окружения?

$ A=~/foo.txt 
$ echo $A 
/home/lone/foo.txt 

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

$ A="~/foo.txt ~/bar.txt" 
$ echo $A 
~/foo.txt ~/bar.txt 

Я знаю, что могу сделать следующее вместо этого, потому что переменные окружения расширяются внутри кавычек.

$ A="$HOME/foo.txt $HOME/bar.txt" 
$ echo $A 
/home/lone/foo.txt /home/lone/bar.txt 

Но есть ли способ исправить второй пример выше, чтобы расширение тильды работало при настройке переменной окружения?

Я пробовал что-то подобное, но это не решило всю проблему.

$ A=~/foo.txt" "~/bar.txt 
$ echo $A 
/home/lone/foo.txt ~/bar.txt 

Что еще я могу сделать?

Примечание: решение должно работать для любой оболочки POSIX.

ответ

0

попробовать это:

eval echo $A 

Выход:

$ A="~/foo.txt ~/bar.txt" 
$ echo $A 
~/foo.txt ~/bar.txt 
$ eval echo $A 
/home/oracle/foo.txt /home/oracle/bar.txt 

 Смежные вопросы

  • Нет связанных вопросов^_^