Bash - Показать меню с сетевыми интерфейсами в качестве параметров

Я новичок в bash, и мне нужно сделать скрипт с меню, в котором каждый из параметров является одним из доступных сетевых интерфейсов системы. Пользователь должен выбрать один из вариантов.

В общем, я ищу что-то подобное (при выполнении).

Please, select a network interface:

1)eth0
2)eth1
3)lo 

Затем пользователь может ввести 1, 2 или 3, чтобы выбрать один из этих вариантов.

Любая помощь будет оценена. Большое спасибо!


person uryftw    schedule 03.06.2015    source источник
comment
Вы захотите проанализировать вывод ifconfig (опция -s может оказаться полезной). Затем используйте команду bash select для создания меню (подсказка: используйте PS3 для подсказки). Вы должны иметь возможность искать на этом сайте примеры select.   -  person glenn jackman    schedule 03.06.2015
comment
посмотрите здесь, как использовать select tldp.org/LDP/Bash-Beginners- Руководство/html/sect_09_06.html. список интерфейсов вы можете получить по ifconfig -s | tail -n +2 | awk '{print $1}'   -  person Yuri G.    schedule 03.06.2015
comment
Спасибо, ребята, безусловно, тоже полезно.   -  person uryftw    schedule 04.06.2015


Ответы (1)


Попробуй это:

echo "Please, select a network interface:"
cd /sys/class/net && select foo in *; do echo $foo selected; done

Выход:

Please, select a network interface:
1) eth0
2) lo
#? 

См.: help select и этот пример, чтобы узнать, как использовать select и case.

person Cyrus    schedule 03.06.2015
comment
Большое спасибо, Сайрус. Завтра я попробую и вернусь, чтобы отметить его как действительный, если он работает :) - person uryftw; 04.06.2015