Bash 将默认getway分配给pc
我正在编写一个模块,将getway分配给pc。我一直在使用“路由”命令,但命令不起作用。我使用的代码是Bash 将默认getway分配给pc,bash,Bash,我正在编写一个模块,将getway分配给pc。我一直在使用“路由”命令,但命令不起作用。我使用的代码是 echo type getway read gwn echo GETWAY: $gwn function valid_gwn() { local gw=$1 local stat=1 if [[ $gwn =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.
echo type getway
read gwn
echo GETWAY: $gwn
function valid_gwn()
{
local gw=$1
local stat=1
if [[ $gwn =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
then
OIFS=$IFS
IFS='.'
gw=($gwn)
IFS=$OIFS
[[ ${gw[0]} -le 255 && ${gw[1]} -le 255 \
&& ${gw[2]} -le 255 && ${gw[3]} -le 255 ]]
stat=$?
fi
return $stat
}
if [[ $? -eq 0 ]] && valid_gwn
then
echo good;
else
echo bad;
fi
route add default gw $gwn eth0 metric 1
请澄清我所犯的错误。我认为我不必从我的结尾编译任何东西,因为有一个 我想,为了进行调试,您应该在设置路由之前回显
$gwn
。
很大程度上,如果在脚本中设置
$gwn
时没有发生错误,那么这个问题可能会在askubuntu的超级用户中被问到。您会遇到什么错误?它说“SIOCADDRT:没有这样的过程”检查eth0接口是否处于启动状态:sudo ifconfig-yes它处于启动状态我已经测试了bash,它确实生成了正确的“route”命令,但是SIOCADDRT错误可能由多种原因引起,并且取决于您的网络配置,因此您需要调查原因。生成的命令是正确的,但是SIOCADDRT的原因可能不同,正如yo所指出的,所以这不是一个真正的bash问题。这是一个路由命令问题,需要根据链接进行调查。未将其添加为注释,我的回答属于注释。