Присвойте результаты сглаживания переменной в Bash

Мой коллега Райан пришел ко мне с ошибкой в своем скрипте Bash, и я обнаружил проблему с этим тестом:

$ mkdir ryan
$ mkdir ryan/smells-bad
$ FOO=ryan/smells-*
$ echo $FOO
ryan/smells-bad
$ touch $FOO/rotten_eggs
touch: cannot touch `ryan/smells-*/rotten_eggs': No such file or directory

Из этого я делаю вывод, что сглаживание происходит во время команды echo, а не при создании переменной FOO.

У нас есть пара обходных путей, в порядке убывания:

touch `echo $FOO`/rotten_eggs

Или же:

pushd
cd $FOO
touch rotten_eggs
popd

Но ни то, ни другое не приносит удовлетворения. Я пропускаю трюк?

Ответы на вопрос(4)

Ваш ответ на вопрос