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

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

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 ответ

Решение

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

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

Другие вопросы по тегам