Chinaunix

标题: 如何在程序中自动输入y或n? [打印本页]

作者: fish617    时间: 2005-05-20 12:11
标题: 如何在程序中自动输入y或n?
ontape -r 过程中,出现
Continue restore? (y/n)
我想在shell程序中自动获得y
Do you want to back up the logs? (y/n)
我想在shell程序中自动获得n
怎么做啊?
请帮忙!3ks
作者: waker    时间: 2005-05-20 12:17
标题: 如何在程序中自动输入y或n?
ontape -r <<EOF
y
n
EOF
作者: fish617    时间: 2005-05-20 12:50
标题: 如何在程序中自动输入y或n?
这个方法不行啊,我原来就是用的
ontape -r<<ok
y
n
ok
出现错误,如果手动输入y 和n就不会出现错误
作者: fish617    时间: 2005-05-20 14:14
标题: 如何在程序中自动输入y或n?
ontape -r<<ok
y
y
n
n
ok这样写
Continue restore? (y/n)
能接收到y,可是后面Do you want to back up the logs? (y/n) 无论如何都接收不到n
这是为什么啊?如下
Chunks
chk/dbs offset   size     free     bpages   flags pathname
1   1   0        60000    22409             PO-   /informix/data/rootdbs
2   2   0        25000    24691             PO-   /informix/data/phydbs
3   3   0        64000    40197             PO-   /informix/data/logdbs
4   4   0        100000   99947             PO-   /informix/data/tempdbs
5   2   0        51200    11197             PO-   /informix/data/phydbs1
6   5   0        250000   221851            PO-   /informix/data/datadbs
7   6   0        150000   79947             PO-   /informixdata/dblog/logdb

Continue restore? (y/n)Do you want to back up the logs? (y/n)

Interrupt received ...
如何让其接收到n呢?3ks
作者: fish617    时间: 2005-05-20 14:33
标题: 如何在程序中自动输入y或n?
顶一下,高手呢!
作者: 寂寞烈火    时间: 2005-05-20 15:07
标题: 如何在程序中自动输入y或n?
try:
echo y|command
作者: fish617    时间: 2005-05-20 15:15
标题: 如何在程序中自动输入y或n?
# echo y |command
执行了以后没什么动静,没有输出!
请问这功能是什么?
作者: 寂寞烈火    时间: 2005-05-20 15:21
标题: 如何在程序中自动输入y或n?
原帖由 "fish617" 发表:
# echo y |command
执行了以后没什么动静,没有输出!
请问这功能是什么?

ontape是什么命令
作者: fish617    时间: 2005-05-20 15:24
标题: 如何在程序中自动输入y或n?
ontape -r是informix数据库的备份恢复命令
作者: fish617    时间: 2005-05-23 15:43
标题: 如何在程序中自动输入y或n?
问题还是没有解决,继续努力
作者: r2007    时间: 2005-05-23 16:36
标题: 如何在程序中自动输入y或n?
猜测可能是ontape每次从标准输入读数据时,做了清缓冲处理。
try:
  1. {sleep 5;echo y;sleep 5;echo n;}|ontape -r
复制代码

作者: galilette    时间: 2005-05-23 23:31
标题: 如何在程序中自动输入y或n?

  1. #! /usr/bin/expect -f
  2. # yes condition
  3. set ycond {Continue restore? (y/n)}
  4. # no condition
  5. set ncond {Do you want to back up the logs? (y/n)}
  6. spawn {ontape -r}
  7. while 1 {
  8.   expect {
  9.     eof {break}
  10.     $ycond {send y\r}
  11.     $ncond {send n\r}
  12.     # return control to user if question unrecognized
  13.     "\\? " {interact +}
  14.   }
  15. }
复制代码

作者: L_kernel    时间: 2010-10-19 21:43
这个主题好老啊,用expect就可以了~~
作者: nelab    时间: 2010-10-20 13:26
挖坟。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2