Существует ли «низкоуровневый» способ определения того, какие системные вызовы вызывает процесс?

Поскольку вы цитируете «$ FILES» , вы передаете одну строку в параметр -a . Вы должны передать туда отдельные файлы.

Что вам следует сделать, так это хранить файлы в массиве: это лучший способ обрабатывать несколько строк, содержащих пробелы. Я предполагаю, что ваши имена файлов не содержат символов новой строки

# read the output of `find` into an array, one element per line
mapfile -t files < <(find /path/to/directory -name '*.jpg' -not -newermt '-15 seconds')
# ...
echo "$message" | mutt -s "Images taken on $date" -a "${files[@]}" -- myemail@domain.com
# ...................................................^^^^^^^^^^^^^

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

Откажитесь от привычки использовать ALLCAPSVARNAMES: однажды вы будете использовать PATH = ... , а затем удивитесь, почему ваш скрипт не работает

2
08.05.2018, 18:53
1 ответ

Предполагая, что у вас установлен strace:

strace /path/to/binary

изменить :Я не читал последнюю часть, в которой говорилось, что у вас нет strace, вы должны иметь возможность скачать архив strace и собрать его без использования менеджера пакетов. Вы можете создать его статически на другом компьютере и скопировать, если у вас не установлены инструменты сборки.

2
27.01.2020, 22:09

Теги

Похожие вопросы