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

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

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

форма с одним столбцом и четырьмя строками

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

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

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

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

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

1 ответ1

0

Если вы прочитаете справочную страницу для 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:»).  Это производит

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .