некоторые программы как gnuplot принимают командный файл, может быть легче генерировать на и затем передать его как аргумент.
некоторые программы не зависят от взаимодействия, поскольку их передающий по каналу к stdin может работать
(
printf "my command\n"
printf "my other command line\n"
) | theProgram and its args
другой зависеть от взаимодействия и мандата, что их стандартный вход является терминалом, необходимо использовать expect
или эквивалентный.
программы или сервисы, которые реализуют d-шину, могут взаимодействоваться из командной строки или из любого другого процесса. https://developer.gnome.org/gio/2.29/gdbus.html и гуглящий об этом должен дать Вам понимание о межпроцессном взаимодействии.