Das funktionierte für mich (Anaconda, Fedora 20):
%pre --log=/tmp/ks_pre.log #!/bin/bash # Backup fds in temporal ones exec >&1 exec >&2 # Go to current terminal for pre% section exec 1>>/dev/pts/0 exec 2>>/dev/pts/0 # Show message whiptail --yesno 'Do you like StackOverflow?' --yes-button 'Yes' --no-button 'No' 10 70 if [ $? = 1 ] then echo 'User sucks' >> /tmp/ks_pre.log else echo 'User rocks' >> /tmp/ks_pre.log fi # Restore fds exec 1>&$STDOUTBACK exec 2>&$STDERRBACK # Close temporal fds exec >&- exec >&- %end
Mögliche Fragen:
Warum hast du verwendet
/dev/pts/0
?Denn von der Anaconda - Konsole aus habe ich herausgefunden, welches Gerät als Standardeinstellung für die Skripts verwendet wurde, die in der ausgeführt werden
pre% section
. Ich denke, es könnte eine andere sein, abhängig von den RedHat- und Fedora-Versionen. Es ist jedoch sehr einfach herauszufinden, welcher für Ihren Fall der richtige ist.Was ist das
exec >&1
undexec >&-
was?Lesen Sie Ihre
man bash
und suchen Sie nach demREDIRECTION
Abschnitt, in dem Sie Folgendes finden können:
Jeder Umleitung, der eine Dateideskriptornummer vorangestellt werden kann, kann stattdessen ein Wort der Form vorangestellt werden. In diesem Fall weist die Shell für jeden Umleitungsoperator außer> & - und <& - einen Dateideskriptor auf, der größer als 10 ist, und ordnet ihn varname zu. Wenn> & - oder <& - vor steht, definiert der Wert von var- name den zu schließenden Dateideskriptor.