创建isIp.sh脚本,判断用户输入的是否为IP地址(要求使用正则表达式)。
时间: 2024-03-16 08:46:49 浏览: 94
好的,这是一个简单的 `isIp.sh` 脚本,用于判断用户输入的是否为 IP 地址:
```bash
#!/bin/bash
read -p "请输入IP地址: " ip
# 使用正则表达式匹配IP地址
if [[ $ip =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then
echo "$ip 是合法的IP地址"
else
echo "$ip 不是合法的IP地址"
fi
```
脚本中使用了正则表达式来匹配 IP 地址,正则表达式的含义为:以 1-3 个数字和 . 组成的字符串重复三次,再以 1-3 个数字结尾。如果用户输入的字符串符合这个模式,就认为它是一个合法的 IP 地址。
相关问题
qt5给脚本sh传输参数。参数未知个数的个IP地址和网卡设备名,脚本判断参数是否为ip地址,收到多个ip并存为列表
你可以使用Qt的QProcess类来执行sh脚本并传递参数。你可以使用QProcess的setArguments()函数设置传递给脚本的参数列表。具体实现可以参考以下代码:
```cpp
QProcess process;
QStringList args;
args << "arg1" << "arg2" << "arg3";
process.start("/path/to/your/script.sh", args);
```
在脚本中,你可以使用$@来获取所有传递的参数,并使用正则表达式判断是否为IP地址。以下是一个示例脚本:
```bash
#!/bin/bash
# Initialize the list of IP addresses
ip_list=()
# Loop through all arguments
for arg in "$@"
do
# Check if the argument is an IP address
if [[ $arg =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]
then
ip_list+=($arg)
fi
done
# Print the list of IP addresses
echo "IP addresses:"
for ip in "${ip_list[@]}"
do
echo "- $ip"
done
```
当你调用该脚本时,它将循环遍历所有参数,检查它们是否为IP地址,并将它们添加到一个名为ip_list的数组中。最后,它将打印出所有收集到的IP地址。
阅读全文