Форма Bash с двумя столбцами

985
John22

Этот скрипт создает форму в окне терминала с одним столбцом и четырьмя строками. Как я могу создать форму с двумя столбцами и двумя строками?

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>&- 

Этот скрипт производит:

a form with one column and four rows

Я бы предпочел такое расположение полей ввода:

a form with two columns and two rows

Я попытался добавить второй --formвариант, но это не сработало. Я также попытался добавить второе поле ввода в той же строке, но начиная с первого, например:

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

Он создает два заголовка в одной строке, но только одно поле ввода - в следующей строке.

-1
Если у вас возникли проблемы с пониманием справочной страницы, вы также можете проверить [это] (https://bash.cyberciti.biz/guide/The_form_dialog_for_input). Который имеет информацию о том, как определяются поля `[label yx item yx flen ilen]`. Seth 7 лет назад 0

1 ответ на вопрос

0
Scott

Если вы прочитаете справочную страницу для dialog, вы увидите, что вы должны указать координаты Y и X для полей, а также, независимо, для меток полей.   В вашей неудачной попытке вы переместили метку во (потенциальный) второй столбец, но оставили поле в первом столбце. Я изменил блок определения поля на

 "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 \ 

(обратите внимание, что я увеличил координату поля X и координату метки X для «Group:» и «HOME:»). Это производит

диалоговая форма с двумя столбцами и двумя строками

что по сути то, что вы просили.

Похожие вопросы