А теперь такой вопрос
При запуске bc пишутся сообщения
Если запустить bc > out , на экране ничего, выйти из bc и cat out то там ничего
Потому что программа может легко понять, ассоциирован ли stdout с tty/pts или же с файлом, и для обоих вариантов может быть разное поведение.
Если bc видит, что stdout/stdin → tty/pts, то предполагается, что программа открыта интерактивно, а значит нужно показывать версию программы.
Если bc видит, что stdout/stdin → файл/пайп, значит мы работаем неинтерактивно, а значит не надо печатать ничего для юзера, вроде версии bc.