Использование диалога в Bash Как мне изменить поведение на основе нескольких элементов, выбранных
Я создаю меню для добавления или перезаписи ключей SSH для нескольких пользователей, используя диалоговое окно --checklist. Меню примерно так
0) append
1) user1
2) root
Я хотел бы, чтобы, если выбран нулевой параметр и выбран вариант 1 или 2 или оба, он будет добавляться, а не перезаписывать ключи ssh при регенерации.
Я новичок в диалоге и не могу придумать логику, необходимую для того, чтобы это произошло.
Моей первой мыслью было использование опции --separate-output и каким-то образом использовать grep для результатов, но должно быть более элегантное решение. Любая помощь или совет приветствуется.
1 ответ
Решение
Запустите диалог так:
dialog --checklist text 50 20 10 0 append 0 1 user1 0 2 root 0 2> checklist.txt
2>
отправляет stderr в собственный файл - где --checklist
выходной заканчивается.
Затем прочитайте содержание checklist.txt следующим образом:
APPEND=0
for a in $(cat checklist.txt); do
if [ "$a" = "\"0\"" ]; then
APPEND=1
continue
fi
if [ "$APPEND" -eq 0 ]; then
# Copy ssh key, without appending
else
# Append ssh key
fi
done