在shell中自动进行交互式输入

问题描述 投票:0回答:2

我正在尝试让shell脚本在脚本提示时自动接受Y值,但是总会以某种方式显示“应用户要求取消了操作”。 nid命令是用于更改数据库名称的Oracle实用程序DBNEWID。

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

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

运行时输出:

将数据库ID和名称更改为newdb? (Y / [N])=>

用户取消了操作请求

shell oracle11g ksh
2个回答
2
投票

在下面使用,如果我们使用日志文件,则它将接受Y作为默认值,并且从不提示。

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


0
投票

您是否安装了expecthttps://en.wikipedia.org/wiki/Expect)?您可能想要使用专为这种事情设计的工具。

© www.soinside.com 2019 - 2024. All rights reserved.