Явный ответ
Пакет moreutils
предоставляет ifne
инструмент. Обычно он запускает данную команду тогда и только тогда, когда стандартный ввод не пуст. Он имеет, однако, режим обратной работы :
-n
Обратный ход. Запустите команду, если стандартный ввод пуст.
Обратите внимание, что если стандартный ввод не пустой,
ifne
в этом случае он пропускается .
Итак, решение таково:
fstdraw in.fst | ifne -n cat dummy.txt | dot -Tpng | convert - -rotate 90 out.png
Альтернативный подход
Это было опубликовано первоначально в качестве комментария. Дело в том, чтобы определить, когда происходит convert
сбой, и действовать соответствующим образом. Метод не отвечает на явный вопрос, но может решить вашу конкретную проблему. Я публикую это здесь для образовательных целей.
fstdraw in.fst | dot -Tpng | convert - -rotate 90 out.png || cp dummy.png out.png