Ram*_*Ram 1 shell shell-script control-flow
Shell:同时中断 if 和 for 循环。
我的脚本:ip 来命名解析代码
IP=192.168.27.191
hostNameChecker()
{
if [ `getent hosts $1 | wc -l` -ne 0 ];then
HOST_NAME=`hostname`
DNS_IP=`getent hosts $1 | cut -d " " -f 1 | sed 's/^[ \t]*//;s/[ \t]*$//'`
DNS_NAMES=`getent hosts $1 | cut -d " " -f 2- | sed 's/^[ \t]*//;s/[ \t]*$//'`
for DNS_NAME in ${DNS_NAMES[@]}
do
if [[ "$DNS_NAME" == "$HOST_NAME" ]];then
echo "Host name:$HOST_NAME and DNS_NAME:$DNS_NAME matched"
break 2;########Not working. only brakes inner for not outer if
else
continue;
fi
done
echo "ERROR: Mismatch between DNS:$DNS_NAMES and Hostname:$HOST_NAME"
exit 0
fi
}
hostNameChecker $IP
Run Code Online (Sandbox Code Playgroud)
在上面的脚本中,break 2只中断内部而不是外部 if。我可以添加另一个 if 来解决它,但还有其他可能的方法吗???