Я пытаюсь использовать whiptail, поскольку это легкая альтернатива dialog и, по-видимому, устанавливается по умолчанию в большинстве систем (т. Е. Людям не нужно ходить и устанавливать их, если они «забыты» или не установлены по умолчанию). Я проверил question #1562666 для нескольких примеров здесь, но я ищу альтернативу для перенаправления вывода, так что задает переменную окружения, а не просто записывает на диск.whiptail: Как перенаправить вывод на переменную окружения?
Например, когда я пытаюсь с диалогами, это работает (я вижу диалоговое окно, и переменная окружения установлено):
result=$(dialog --output-fd 1 --inputbox "Enter some text" 10 30)
echo Result=$result
Однако, это не работает при использовании Хлыстохвоста вместо диалога, поскольку диалоговое окно никогда не появляется. Я должен перенаправить его в файл на диске и читать, например:
result=$(tempfile) ; chmod go-rw $result
whiptail --inputbox "Enter some text" 10 30 2>$result
echo Result=$(cat $result)
rm $result
Он работает, и я могу использовать один и тот же временный файл от начала до конца (удаление его, когда заканчивается сценарий). Но неудобно принудительно использовать диск только для этого, вместо того, чтобы хранить все в памяти (перенаправление на переменную окружения).
Так что я спрашиваю: я что-то забыл - или я должен действительно должен использовать диск при использовании whiptail?
Заранее благодарю вас за отзыв.
Похоже, когда Хлыстохвост имеет свой stdin/stdout перенаправлен, он не отображается (с помощью $ (...) или ... |). Ваше решение выглядит довольно хорошо, учитывая поведение whiptail. BTW, на моей машине debian, у меня есть whiptail, но нет диалога по умолчанию, на opensuse, у меня есть диалог и никакого существующего whiptail в официальных репозиториях. – Zeograd
@Zeograd по крайней мере на RHEL whiptail входит в пакет «newt». – Kimvais
Справа, thx Kimvais. «zypper search whiptail» потерпел неудачу на меня, даже если информация указала, что он находится. – Zeograd