apt-ghetto schrieb:
Ausserdem könntest du die Variable est mit einem Wert ungleich 1235 initialisieren, und die Auswertung beim While-Schleifenkopf machen:
Das ist gar nicht nötig: Man kann die richtige Zuweisung gleich in den Schleifenkopf verlegen:
| while est=$(zenity --entry --text="passwort:1235" --title="passwort"); [ "$est" -ne 1235 ]; do
echo "..."
done
|
Ich habe außerdem den Integervergleich gewählt, da es sich um eine Zahl zu handeln scheint. Man kann auch gleich noch den Rückgabewert von zenity auswerten; damit erledigt man dann auch den Fall, dass der Nutzer "Escape" oder "Cancel" drückt:
| while est=$(zenity --entry --text="passwort:1235" --title="passwort") && [ "$est" -ne 1235 ]; do
echo "..."
done
|
Der Sinn der ganzen Konstruktion ist mir allerdings nicht klar. Wieso zeigt man das Passwort an?
Wenn es darum geht, den Benutzer so lange Passwörter angeben zu lassen, bis er entweder abbricht oder das richtige eingegeben hat, dann würde ich das wohl so machen:
| while est=$(zenity --entry --text="passwort:1235" --title="passwort"); do
[ "$est" -ne 1235 ] && exit
done
echo 'Abbruch'
exit 1
|
Dann kann man das mit anderen Skripten so kombinieren:
| login.sh && befehl-bei-eingeloggt
|
Das ganze ist natürlich überhaupt nicht sicher. Zum einen, weil das Passwort sichtbar im Skript steht, zum anderen, weil es halt ein Skript ist, dessen Logik offen sichtbar ist (oder sogar geändert werden kann).
Was also ist das Ziel der ganzen Veranstaltung?