免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: GM
打印 上一主题 下一主题

红袖添香:续问.......!!!!! [复制链接]

论坛徽章:
0
41 [报告]
发表于 2003-03-12 22:18 |显示全部楼层

红袖添香:续问.......!!!!!

红袖好:
呵呵,他也有可能帮不上忙喔,否则他跑的这么快,这个问题我看得有点悬,相信你能解答的!!!!,我期盼啊!!!

论坛徽章:
0
42 [报告]
发表于 2003-03-12 22:56 |显示全部楼层

红袖添香:续问.......!!!!!

红袖好:
我相信你肯定能解的,你对awk,sed等这么熟,你能不能换种方式,试试,对不起,你是帮助我的,我好象又给你出作业了,真是不好意思啊,但是我很想能把这个问题给解开了,真的真的,要不然,我和你近的话,我要请客了,呵呵!!!

论坛徽章:
0
43 [报告]
发表于 2003-03-14 12:58 |显示全部楼层

红袖添香:续问.......!!!!!

红袖好:
谢谢你为我找办法,辛苦了。
我的分析是这样的:
你采用的办法一般行的通,如是对最后一个命令的判断,倒还是行的通。要是有另一种情况,就有点麻烦了。
如:备份命令之后,进行判断正确如何,如何正确之后还要执行一些命令,例如后台拷磁带等。所以这种情况是备份命令后还有命令,只不过在备份命令之后
根据情况设了一个断点嵌套,如果备份不正确,就会不光中止这个循环,还会中止整个shell。
呵呵,是不是我做得有点烦了,这可能对函数做不到,因为函数中有一些变量,要是嵌套执行第二次的话,可能会搞乱函数内的变量。
所以,这样最好不采用函数,而是用一般的循环判断。你认为呢???


[/code]

论坛徽章:
0
44 [报告]
发表于 2003-03-15 09:47 |显示全部楼层

红袖添香:续问.......!!!!!

红袖好:
我还是想不明白,为什么会是这样呢?,今天我还是试了一下,也找到了原因之所在,但不知是什么道理,你再给我分析一下,包括我前一帖的问题,谢谢!!!我在你两个函数后面加了一个简单的判断函数,取名叫noyes()吧!


  1. noyes() {
  2.   read yy
  3.     case $yy in
  4. y|Y) break;;
  5. n|N) exit 1;;
  6. *) echo "yy变量没有读入......."
  7.     esac
  8. }
复制代码

yesno "今天要备份吗?...........................[y/n]" -c '
cal,
noyes,
echo "已删除备份目录,查正后再做........."'
date
经测试,也不是函数经嵌套之后变量被搞乱了,而是最根本的原因是在函数noyes()中的read yy没有执行或没有正确地读入,这是什么原因呢,何解呢,希望你能告诉我,谢了......!!!!

论坛徽章:
0
45 [报告]
发表于 2003-03-18 13:34 |显示全部楼层

红袖添香:续问.......!!!!!

红袖好:
我只有半点明白,蓝色这句echo "ok.........."在屏幕上好象没有显示出来,我上次试的时候真的没注意到,是不是在函数noyes()中的read中当回车用了???
还有在你代码中的调用方法中,if用的太多了,使我真的有点绕糊涂了,能不能根据下面的代码给我示范一下好吗!!!

  1. yesno "今天要备份吗?...........................[y/n]" -c '
  2. mkdir databak,
  3. cd databak,
  4. 备份命令,
  5. yesno "备份成功吗?...................[y/n]" -r -c '
  6. rm -r databak,
  7. echo "已删除备份目录,查正后再做........." ,
  8. exit ' '
  9. 其它命令 .....
复制代码

还有一点假如备份成功的话,还要怎样加入后台进程拷磁带,如果这样又要怎样写呢?

论坛徽章:
0
46 [报告]
发表于 2003-03-20 19:33 |显示全部楼层

红袖添香:续问.......!!!!!

红袖兄:
现在见到你在网上真高兴,看到你的回复很是感动,你一贴贴地为我奈心的回答真是没有什么好表达,省得有人说肉麻!!!
对了,你所采用的返回方式来进行第二轮的判断真是别出心裁,调用时也比较灵活,是个好方法,谢了!!!!
但我对前个问题还没搞懂,总觉得奇怪,为什么不能采用老方法,还要你指点喔!!
问题在我的前一贴上,你好象没见到!

我只有半点明白,蓝色这句echo "ok.........."在屏幕上好象没有显示出来,我上次试的时候真的没注意到,是不是在函数noyes()中的read中当回车用了???

现在看来,也不是当回车的,要是没这句,read也没读入.......???

论坛徽章:
0
47 [报告]
发表于 2003-03-20 19:40 |显示全部楼层

红袖添香:续问.......!!!!!

原帖由 "bzzyg" 发表:

不对吧,我用的就是sco unix 5.05系统,ping -f 参数对于没有开机的机器是很好用的啊!!

我单位是sco unix 5.04系统,可能和sco unix 5.05不同吧,版本高点,可能这个功能改进了吧,你说好用,是你用过的,我相信,我有机会用用就是了,谢谢你的提醒!!!!

论坛徽章:
0
48 [报告]
发表于 2003-03-20 20:02 |显示全部楼层

红袖添香:续问.......!!!!!

红袖兄:
请问:EOL是什么符号的表示?
假如,把这句去掉,或者只有两个干净的函数进行嵌套调用,也认为也行不通,所以也不光是这个问题吧,但现在我想来越来越觉得怪了,因为echo的语句是在我调用的函数的后面,把后面的先吃掉了?,没打印出来?

论坛徽章:
0
49 [报告]
发表于 2003-03-20 20:22 |显示全部楼层

红袖添香:续问.......!!!!!

红袖兄:
谢了这个我搞懂了!!!
对了假如我采用:
yesno "继续吗..........[y/n]" -c '
yesno "第二次调用正确吗.....[y/n]"'
这样不行的原理是怎样的?

论坛徽章:
0
50 [报告]
发表于 2003-03-20 20:52 |显示全部楼层

红袖添香:续问.......!!!!!

红袖兄:
我把printf "$1 "这句给暂封进行试了一下,也不行???
原因好象也不是这个啊!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP