Я думаю, что вы пытаетесь использовать неправильный инструмент для работы, в основном потому, что passwd
не читает стандартный ввод, а из терминала (/dev/tty).
Вам, вероятно, нужно использовать expect
или один из его различных рабочих уровней. Это разработано, чтобы управлять программами, такими как passwd
, которые являются интерактивными и ожидают терминальный ввод (а не стандартный ввод).
Глядя на предлагаемую тройную команду, я не вижу, как третья -x bash
собирается получать информацию от второй. Мне также не ясно, что делает bash
-in-the-script. Конечно, вы должны написать сценарий, который выполняет всю работу, а затем вызвать терминал для запуска этого сценария. Мне кажется, что запускать три такие команды очень проблематично.