У меня есть ситуация, когда кажется, что расширение подстановочного знака bash иногда не работает в моей автоматической сборке (это похоже на этот вопрос , все работает внутри ch root создан внутри docker контейнера, поэтому может быть много причин, почему он не работает (неработающая библиотека c, сломанная оболочка и т. д. c.). Я пытался использовать strace, но результат не помог мне проанализировать проблема.
В первой строке рабочего случая показано расширенное имя файла:
$ ls /tmp/
linux-image-4.9.124.deb
$ strace ls /tmp/linux*deb
execve("/bin/ls", ["ls", "/tmp/linux-image-4.9.124"...], [/* 23 vars */]) = 0
...
А в случае сбоя показано, что * не было расширено:
$ ls /tmp/
linux-image-4.9.124.deb
$ strace ls /tmp/linux*deb
execve("/bin/ls", ["ls", "/tmp/linux*deb"], [/* 23 vars */]) = 0
...
set -o
показывает noglob off
в обоих случаях
Как я могу отладить это, например, с помощью strace / gdb или любого другого инструмента?