Создать меню с X элементами в зависимости от переменной

Вам необходимо распределение терминала на удаленной стороне:

ssh -t user@remote_host tail -f /some/file

или даже

ssh -tt user@remote_host tail -f /some/file
0
11.12.2018, 13:13
2 ответа

В моем случае я разобрался.

вроде @fra -Сан сказал, зачем использовать прецедент, а не просто распечатать его и спросить у пользователей.

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

0
28.01.2020, 02:41

Если вы используетеbash(или аналогичную оболочку):

ipnums=( 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 )

select ip in "${ipnums[@]}"; do
    case $ip in
        "") echo 'Invalid choice' >&2 ;;
        *)  break
    esac
done

printf 'You picked IP %s\n' "$ip"

Это отобразит меню и подсказку, подобные этой:

1) 192.168.1.1
2) 192.168.1.2
3) 192.168.1.3
4) 192.168.1.4
#? 

Подсказку можно изменить, установив PS3на используемую строку подсказки.

Цикл selectпроверяет ввод и повторяется до тех пор, пока от пользователя не будет получен допустимый ввод.

После цикла выбранный IP-адрес доступен в $ip.

Если вы не хотите хранить свои адреса в массиве, вам придется вместо этого перечислить соответствующие переменные (это будет нелегко обобщить на N переменных,вот почему я предложил использовать массив в своем ответе на ваш другой вопрос):

select ip in "$ip1" "$ip2" "$ip3" "$ip4"; do...; done
1
28.01.2020, 02:41

Теги

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