2015-06-03 3 views
0

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

Так что, в основном, я ищу что-то подобное (при исполнении).

 
Please, select a network interface: 

1)eth0 
2)eth1 
3)lo 

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

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

+0

Вы хотите проанализировать вывод 'ifconfig' (опция' -s' может быть полезна). Затем используйте команду 'select' bash для создания меню (подсказка: используйте' PS3' для подсказки). Вы должны иметь возможность искать этот сайт для примеров выбора. –

+0

смотрите здесь, как использовать 'select' http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_06.html. список интерфейсов, который вы можете получить: 'ifconfig -s | хвост -n +2 | awk '{print $ 1}' ' –

+0

Спасибо, ребята, определенно полезны. – uryftw

ответ

0

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

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 и this пример, чтобы увидеть, как использовать select и case.

+0

Спасибо, Кир. Завтра я попробую, и я вернусь, чтобы отметить его как действительный, если он работает :) – uryftw