Сценарий оболочки OSX для чтения из списка сетевых адаптеров? - PullRequest
0 голосов
/ 04 ноября 2019

Я создал сценарий оболочки, чтобы пользователи могли автоматически настраивать свой сетевой адаптер. Часть сценария перечисляет сетевые адаптеры, подключенные в данный момент, а затем считывает введенные пользователем данные, чтобы ввести перечисленный адаптер в точности так, как он выглядит. Затем он применяет имя сети для внесения изменений в IP. Я хочу ограничить пользовательскую ошибку, указав в списке терминалов адаптеры, и пользователю нужно только выбрать варианты 1-6, чтобы завершить настройку.

Я попытался ограничить список с помощью awk, и сценарий по умолчанию настроен наприоритетное устройство, но из-за того, что подключено много разных адаптеров и нет однородности машин,

    IP_ADDR="192.168.1.22"
    SUBNET="255.255.255.0"
    D_GATE="192.168.1.1"
    DNS1="8.8.8.8"
    DNS2="8.8.4.4"

    # Find your adapter
    echo I am going to show you a list of adapters. Find the correct one and write down the Service name.
    # List adapters
    networksetup -listallnetworkservices

    # Asking them to find it
    echo What is the the Service name of the adapter you are going to use?

    # Get the users input
    read NIC_SERVICE

    # Restate NIC that was typed
    echo you typed $NIC_SERVICE If that is incorrect IP Address will not saved
    sleep 2s
    clear

    # Set Ip Address
    if [ 192.168.1.22 != "" ] && [ "$NIC_SERVICE" != "" ]
    then
    networksetup -setmanual "$NIC_SERVICE" 192.168.1.22 255.255.255.0 192.168.1.1
    networksetup -setdnsservers "$NIC_SERVICE" 8.8.8.8 8.8.4.4
    fi

1 Ответ

0 голосов
/ 04 ноября 2019

Вы пытались использовать встроенную команду выбора? Вот простой пример

#!/bin/bash

IFS="
"

select V in $(networksetup -listallnetworkservices);do
    echo "DO WHATEVER WITH $V"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...