Мой коллега Райан пришел ко мне с ошибкой в Bash script, и я определил проблему с этим тестом:
$ 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
Из этого я делаю вывод, что globbing происходит во время команды echo, а не при создании переменной FOO.
У нас есть несколько обходных решений, в порядке убывания беззакония:
touch `echo $FOO`/rotten_eggs
Или:
pushd
cd $FOO
touch rotten_eggs
popd
Но ни одно из них не удовлетворяет. Я пропустил трюк?