Intereting Posts
Извлечение определенных строк набора, соответствующих правилу Как загрузить исходный код пакета Debian? Ошибка обновления Fedora 26 Загрузите только недавно измененные файлы с помощью wget over FTP Как запустить мою собственную программу без указания ее пути Как ограничить административные привилегии различными файлами конфигурации? Каково состояние стандартного потока ввода-вывода при выдаче команды? Что мне нужно для добавления виртуального адаптера IPsec? Мышь AmazonBasics с FreeBSD Ресурсы для детального изучения архитектуры Linux? Как запустить исполняемый файл Windows в сценарии оболочки Linux? Разрешено ли назначать один диапазон подчиненных идентификаторов двум различным пользователям? Mac OSX, как автоматически генерировать поле выбора локально установленных принтеров? Редактирование дерева устройств для отключения загрузки драйвера Терминал – создание гиперссылок

Изменить скрипт для использования whiptail вместо zenity

У меня возникли трудности с преобразованием некоторого сценария на основе zenity, чтобы вместо этого использовать whiptail.

Рабочий сценарий выглядит примерно так:

#!/bin/bash xfreerdp /v:farm.company.com \ /d:company.com \ /u:$(zenity \ --entry \ --title="Username" \ --text="Enter your Username") 

Я пытаюсь преобразовать это, чтобы вместо этого использовать whiptail, но продолжаю получать пустой экран.

Это то, что у меня есть до сих пор:

 #!/bin/bash xfreerdp /v:farm.company.com \ /d:company.com \ /u:$(whiptail \ --inputbox "Username" 10 30) 

Что я делаю не так?

Причина, по которой вы не видите поле ввода, заключается в том, что whiptail записывает дисплей в stdout, который вы захватываете. Результат ввода записывается в stderr, который вы не захватываете. Чтобы выполнить эту работу, вам нужна подстановка команды для захвата stderr , но не stdout . Вы можете сделать это с перенаправлением:

 #!/bin/bash xfreerdp /v:farm.company.com \ /d:company.com \ /u:$(whiptail \ --inputbox "Username" 10 30 3>&1 1>&2 2>&3)