Я создаю меню для добавления или перезаписи ключей ssh для нескольких пользователей, используя диалог --checklist. Меню примерно такое
0) append
1) user1
2) root
Я бы хотел, чтобы если был выбран вариант 0 и выбран вариант 1 или 2 или оба, он будет добавлять, а не перезаписывать ключи ssh при регенерации.
Я новичок в диалоге и не могу придумать логику, необходимую, чтобы это произошло.
Моя первая мысль заключалась в том, чтобы использовать параметр --separate-output и каким-то образом использовать grep для результатов, но должно быть более элегантное решение. Любая помощь или совет приветствуются.
Запустите такой диалог:
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