文件重定向结果不稳的定问题
发表于 : 2008-04-09 10:24
小菜我在写一个DHCPD配置文件的shell脚本,里面用到了linux输入输出重定向,不晓得为什么得到的定向文件结果很不稳定,经常要少一些内容,或者干脆什么都没有,其中部分代码如下:
很奇怪的是把断点那部分注释打开后生成的配置文件就没有问题,很象我以前学C语言中没有为函数返回结果分配空间,如果运气好的话得到正确输出结果,运气不好就是乱码,如果在里面加上一些输出的话一般正常。
小菜学shell不久,百思不的其解,不晓得各位大侠是否碰到过类似的问题。
还有一个小问题:我要得到一个数字型数据,要做合法性判断,但是好像我设想那个判断没有用,请大侠门指教一下
代码: 全选
#下面那个重定向结果也偶尔出问题
cat head > /etc/dhcpd.conf &
sed -i "s/192.168.1.1/$my_gateway/g" /etc/dhcpd.conf
sed -i "s/192.168.0./$client_ip/g" /etc/dhcpd.conf
foo=0
while [ "$foo" -lt "$num" ]
do
blade_no=$(($first+$foo))
# 得到MAC地址
read mac
#下面那个重定向结果经常出问题
cat blade >> /etc/dhcpd.conf &
sed -i "s/blade0/blade$(($foo+1))/g" /etc/dhcpd.conf
sed -i "s/00:00:00:00:00:00/$mac/g" /etc/dhcpd.conf
sed -i "s/192.168.0.254/$client_ip$blade_no/g" /etc/dhcpd.conf
foo=$(($foo+1))
# echo "断点11111111111……………………"
# gedit /etc/dhcpd.conf
# read a
done
小菜学shell不久,百思不的其解,不晓得各位大侠是否碰到过类似的问题。
还有一个小问题:我要得到一个数字型数据,要做合法性判断,但是好像我设想那个判断没有用,请大侠门指教一下



代码: 全选
echo "请输入数量:"
read num
while [ "$num" -le 0 ] || [ "$num" -ge 256 ]
do
echo "非法输入数据:$num"
echo
echo "请输入数量:"
read num
done