Bashform mit zwei Säulen

1090
John22

Dieses Skript erstellt ein Formular in einem Terminalfenster mit einer Spalte und vier Zeilen. Wie kann ich ein Formular mit zwei Spalten und zwei Zeilen erstellen?

shell="" groups="" user="" home="" exec 3>&1 VALUES=$(dialog --ok-label "Submit" \ --title "Useradd" \ --form "User form" \ 15 50 0 \ "Username:" 1 1 "$user" 1 10 10 0 \ "Shell:" 2 1 "$shell" 2 10 10 0 \ "Group:" 3 1 "$groups" 3 10 10 0 \ "HOME:" 4 1 "$home" 4 10 10 0 \ 2>&1 1>&3)  exec 3>&- 

Dieses Skript erzeugt:

ein Formular mit einer Spalte und vier Zeilen

Ich würde diese Anordnung der Eingabefelder bevorzugen:

ein Formular mit zwei Spalten und zwei Zeilen

Ich habe versucht, eine zweite --formOption hinzuzufügen, aber es hat nicht funktioniert. Ich habe auch versucht, ein zweites Eingabefeld in derselben Zeile hinzuzufügen, aber nach dem ersten wie folgt zu beginnen:

 "Second field:" 1 41 "$second" 1 10 10 0 \ 

Es erstellt zwei Kopfzeilen in derselben Zeile, aber nur ein Eingabefeld - in der nächsten Zeile.

-1
Wenn Sie Probleme mit der Manpage haben, können Sie auch dies überprüfen (https://bash.cyberciti.biz/guide/The_form_dialog_for_input). Welche Informationen dazu gibt es, wie die Felder definiert werden `[label yx item yx flen ilen]`. Seth vor 7 Jahren 0

1 Antwort auf die Frage

0
Scott

Wenn Sie die Manpage lesen dialog, sehen Sie, dass Sie die Y- und X-Koordinaten für die Felder und unabhängig voneinander für die Feldbezeichnungen angeben müssen .   Bei Ihrem erfolglosen Versuch haben Sie das Label in eine (mögliche) zweite Spalte verschoben, das Feld aber in der ersten Spalte belassen. Ich habe den Felddefinitionsblock in geändert

 "Username:" 1 1 "$user" 1 10 10 0 \ "Shell:" 2 1 "$shell" 2 10 10 0 \ "Group:" 1 25 "$groups" 1 34 10 0 \ "HOME:" 2 25 "$home" 2 34 10 0 \ 

(Beachten Sie, dass ich die Feld-X-Koordinate und die Beschriftungs-X-Koordinate für „Gruppe:“ und „HOME:“ erhöht habe). Das produziert

dialog form with two columns and two rows

Das ist im Wesentlichen das, wonach Sie gefragt haben.