1

Я понимаю, что могу использовать xargs вот так:

echo "-i inputfile.raw -o outputfile.jpg" | xargs -t ./myprogram

Тем не менее, я тестирую приложение и у меня есть фаззер, который работает так:

эхо "некоторый текст" | Вывод echo "some text" | myfuzzer : "@ om3 t9gxt"

Другими словами, мой фаззер берет строку и выполняет с ней некоторые перестановки, а затем выводит ее случайную версию.

Хитрость в том, что мне нужно перенаправить "-i inputfile.raw -o outputfile.jpg" через myfuzzer, чтобы он мутировал, НО мне нужно ДЕРЖАТЬ части -o, -i, .raw и .jpg .. , И, наконец, передайте вывод myprogram следующим образом:

echo "-i inpu$@tfifsa4le.raw -o outpuF$tfFAFAile.jpg" | xargs -t ./myprogram

Поэтому мне нужен какой-то способ указать, что я хочу, чтобы имена файлов направлялись только через myfuzzer, но не через вышеупомянутые расширения и флаги, иначе они тоже будут переставлены, и myprogram не будет распознавать аргументы, если у них нет правильных флагов и расширений. ... Но все же восстановите строку для подачи в myprogram.

Как я могу сделать это с помощью Bash?

1 ответ1

1

Вы можете, например, использовать read в суб-оболочке

echo "inputfile outputfile" | myfuzzer | (read -a arg; echo "-i ${arg[0]}.raw -o ${arg[1]}.jpg" )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .