提示用户选择/输入IP地址的脚本

提示用户选择/输入IP地址的脚本

我想知道下面的脚本是否能够以逻辑方式实现以下目标:

  1. 询问用户机器现有的IP地址(如果有)是否正确。它需要列出现有的地址,允许用户选择。例如

    eth0 127.0.0.1 eth1 168.21.51.23 etc

  2. 如果用户拒绝选项 1,请要求用户提供要分配的 IP 地址。

  3. 否则,如果用户拒绝现有的 IP 地址或未提供任何输入,脚本将向系统输入预定义的默认 IP 地址,例如 192.168.81.23。

请注意,以下脚本将是我尝试创建的更大程序的一部分。我尝试使用以下脚本来满足上述要求,但存在一些语法错误:


#!/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/或尝试运行代码。

脚本是否正确实现了目标?

这和一开始的问题是一样的,答案仍然是否定的。

相关内容