免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
71 [报告]
发表于 2003-03-11 08:14 |只看该作者

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

红袖好:
哦,原来还能这样,真是不看不知道啊,我以为要写成不同的函数才行,万分地感谢!!!
还有一点问题,我是不是我有点得寸进尺了,但是为了学习更好的方法,还是要问你了,请你量解哦!!!
问题:
要是我放把这个函数放在主程序中,我要是带的参数多的吗,即不在一行中,这样是不是有点乱的感觉,能不能把参数写在不同的行中?
如:yesno "备份成功吗?...........................[y/n]" -r -c EOF
ls *.sh
tail /var/log/messages
df -h
!EOF
这样能起到整个程序的整齐性,一看就知道有三条命令要执行,也能起到增删程序的随意性。
红袖能这样吗?

论坛徽章:
0
72 [报告]
发表于 2003-03-12 07:21 |只看该作者

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

...

上次那个脚本中给你添加上 -f 参数,就是为让你能够把所有的命令都放到一个文本文件中去,方便你修改,而且一目了然,不用老是修改程序,我还是觉得这样子更好些。不过,既然你更愿意放到程序中去,也没问题。这样子写就可以了:

CMD='
ls *.sh,
tail /var/log/messages,
df -k /tmp'

yesno "$REQ" -r -c $CMD

(为了不用作大的更改就能用,CMD 中除最后一个外每一条命令的行尾要加上逗号)

论坛徽章:
0
73 [报告]
发表于 2003-03-12 19:28 |只看该作者

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

红袖好:
见到你的解释使我恍然大悟。

  1. 象我这样是不行的:
  2. 如:yesno "备份成功吗?...........................[y/n]" -r -c EOF
  3. ls *.sh
  4. tail /var/log/messages
  5. df -h
  6. !EOF
  7. 这是shell功能范围的问题了,一看它就会把每一行作为新命令解释的,前天我问的问题是多么的可笑啊.........!!!
复制代码

你的帮助,使我知道可以这样变通用了,!!!

  1. 如:yesno "备份成功吗?...........................[y/n]" -r -c "
  2. ls *.sh,
  3. tail /var/log/messages ,
  4. df -k"
复制代码

我还想问,假如这个函数执行程序过程中,还有一条程序在执行过程中判断正确如何,能再次调用这个函数吗?

  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 " "
复制代码

但这样不行,到第二个函数yesno,没有read入?,不知怎么回事,要怎样才能完成这样的工作?
谢谢你的帮助!!!!![/quote]

论坛徽章:
0
74 [报告]
发表于 2003-03-12 19:44 |只看该作者

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

...

那可能是因为第一个 yesno 中赋过值的变量影响了第二次调用。试一下,再调用前

unset reply
unset cmd
...

论坛徽章:
0
75 [报告]
发表于 2003-03-12 19:54 |只看该作者

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

红袖好:
我加上去后也不行,只打一行备份成功吗......?[y/n],没有读入,直接过去了?
请你帮我啊???

论坛徽章:
0
76 [报告]
发表于 2003-03-12 19:57 |只看该作者

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

...

错误信息是什么?

论坛徽章:
0
77 [报告]
发表于 2003-03-12 20:01 |只看该作者

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

红袖好:
错误信息是这样的:
备份成功吗.......[y/n]?   You should type "y" or "n" [y/n] Filesystem    512-blocks

论坛徽章:
0
78 [报告]
发表于 2003-03-12 20:06 |只看该作者

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

...

好,让我自己试一下。

论坛徽章:
0
79 [报告]
发表于 2003-03-12 20:08 |只看该作者

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

红袖好:
真是麻烦你了,谢谢!!

论坛徽章:
0
80 [报告]
发表于 2003-03-12 20:21 |只看该作者

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

...


有几个地方要注意一下,

- 你第一次调用 yesno 的参数列表没有关闭的引号
- 引号最好使单引号,容易避免一些意想不到的错误
- 你第二次调用 yesno 时的引号嵌套是错的,建议外部用单引号,内部用双引号
- 最后一条命令后面不要带有逗号
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP