Если вам нужно, чтобы этого не произошло, используйте SOMEVAR = $ (cat / dev / stdin) для захвата stdin в bash и передачи его в ausearch или любую другую часть скрипта как $ SOMEVAR.

кто-нибудь объяснить, почему передача данных скрипта bash через STDIN приведет к тому, что команда внутри скрипта НЕ будет работать?

Автор сценария:

#!/bin/bash
ausearch -i -a 1221217

Если я запускаю следующее, он выводит результаты ausearch, как и ожидалось:

./au.sh

Однако, если я сделаю это:

echo "blah" | ./au.sh

Затем выводит:

<no matches>

Оба метода выполнения должны возвращать одинаковые результаты (поскольку ausearch жестко запрограммирован), но, похоже, stdin нарушает его.

яНЕ спрашивать о том, как читать данные стандартного ввода в скрипте bash.

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

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