사용자에게 IP 주소를 선택/입력하라는 메시지를 표시하는 스크립트 [닫기]

사용자에게 IP 주소를 선택/입력하라는 메시지를 표시하는 스크립트 [닫기]

다음 스크립트가 논리적인 방법으로 다음을 달성할 수 있는지 궁금합니다.

  1. 기기의 기존 IP 주소(있는 경우)가 올바른지 사용자에게 물어보세요. 기존 주소를 나열하고 사용자가 선택할 수 있도록 해야 합니다. 예를 들어

    eth0 127.0.0.1 eth1 168.21.51.23 etc

  2. 사용자가 옵션 1을 거부하는 경우 할당할 IP 주소를 사용자에게 요청합니다.

  3. 그렇지 않고 사용자가 기존 IP 주소를 거부하거나 입력을 제공하지 않으면 스크립트는 192.168.81.23과 같이 미리 정의된 기본 IP 주소를 시스템에 입력합니다.

다음 스크립트는 제가 만들려고 하는 더 큰 프로그램의 일부가 될 것입니다. 위의 요구 사항을 충족하기 위해 다음 스크립트를 사용하려고 시도했지만 몇 가지 구문 오류가 있습니다.


#!/bin/bash
getinfo
echo "Obtain the static IP address"
read -p "Is it an Existing address/User input/NIL? (E/U/N)" interface
echo ""
 case $interface in 
       [Ee]* ) exist_addr ;;
       [Uu]* ) user_supply ;;
       [Nn]* ) default;;
           * ) echo "Please enter Existing, User or Nil!" ;;
 esac
} 

exist_addr()
{
   #calling earlier script for listing existing interfaces
./get_addr
read -p "Confirm the existing address settings correct? (y/n)" reply
case $reply in 
      [Yy]* ) ./scriptfornextstepoftheprogram ;;
      [Nn]* ) getinfo ;;
          * ) echo "Please enter Yes or No!" ;;
esac
}

user_supply()
{
read -p "Enter the IP address for the network interface" supplied_IP
echo ""
       read -p "Is the IP address entered correct? (y/n)" yn
       case $yn in
             #when yes I input the ip address to the interface 
          [Yy]* ) ip address add $supplied_IP dev eth1 ;;
          [Nn]* ) getinfo ;;
              * ) echo "Please enter Yes or No!" ;;
       esac
}

default()
{ read -p "Enter he default predefined IP address" default_IP
  echo ""
        read -P "Is this the predefined IP address? (y/n)" yn
        case $yn in
            [Yy]* ) ip address add $default_IP dev enp0s3 ;;
            [Nn]* ) getinfo ;;
                * ) echo "Please enter Yes or No!" ;;
         esac
}
exit 1

스크립트가 목표를 올바르게 달성합니까?

답변1

아래 스크립트가 논리적인 방법으로 다음을 달성할 수 있는지 알고 싶습니다.

아니요. 첫 번째 문에 사용된 참조 명령이나 함수가 누락되었으며 첫 번째 질문 직후 실패하게 만드는 구문 오류가 있습니다. 코드를 붙여넣으면 확인할 수 있습니다.https://shellcheck.net/아니면 코드를 실행해 보세요.

스크립트가 목표를 올바르게 달성합니까?

처음과 같은 질문인데 대답은 여전히 ​​'아니요'입니다.

관련 정보