我想知道下面的脚本是否能够以逻辑方式实现以下目标:
询问用户机器现有的IP地址(如果有)是否正确。它需要列出现有的地址,允许用户选择。例如
eth0 127.0.0.1 eth1 168.21.51.23 etc
如果用户拒绝选项 1,请要求用户提供要分配的 IP 地址。
否则,如果用户拒绝现有的 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/或尝试运行代码。
脚本是否正确实现了目标?
这和一开始的问题是一样的,答案仍然是否定的。