在shell中自动化交互式输入

时间:2015-09-11 20:10:32

标签: shell oracle11g ksh

我正在尝试使用shell脚本在脚本中提示时自动接受值为Y但不知何故它总是说“在用户请求时取消操作”。

关于如何在下面的功能中接受Y的任何想法? 函数登录到数据库并更改名称。

function rename_db {
nid target=SYS/"as sysdba" DBNAME=newdb << EOD
Y
EOD
}
  

运行时输出:

     

将db ID和名称更改为newdb? (Y / [N])=&gt;

     

用户取消了操作   请求

2 个答案:

答案 0 :(得分:1)

在下面使用,如果我们使用logfile,那么它将接受Y作为默认值,并且永远不会提示。

e.g。 nid target=sys/"as sysdba" dbname=old_db logfile=rename.log

答案 1 :(得分:0)

您是否安装了expecthttps://en.wikipedia.org/wiki/Expect)?您可能希望使用专为此类设计的内容。