shell 中的自动化交互式输入
Automating interactive input in shell
我正在尝试 shell 脚本在脚本中提示时自动接受值为 Y,但不知何故它总是说“应用户请求取消操作”。 nid
命令是一个用于更改数据库名称的 Oracle 实用程序 DBNEWID。
知道如何在下面的函数中接受 Y 吗?
函数登录到数据库并更改名称。
function rename_db {
nid target=SYS/"as sysdba" DBNAME=newdb << EOD
Y
EOD
}
Runtime output:
Change db ID and name to newdb? (Y/[N]) =>
Operation cancelled at user
request
您安装了 expect
(https://en.wikipedia.org/wiki/Expect) 吗?你会想使用专为这类事情设计的。
在下面使用,如果我们使用日志文件那么它将接受 Y 作为默认值并且从不提示。
例如nid target=sys/"as sysdba" dbname=old_db logfile=rename.log
我正在尝试 shell 脚本在脚本中提示时自动接受值为 Y,但不知何故它总是说“应用户请求取消操作”。 nid
命令是一个用于更改数据库名称的 Oracle 实用程序 DBNEWID。
知道如何在下面的函数中接受 Y 吗? 函数登录到数据库并更改名称。
function rename_db {
nid target=SYS/"as sysdba" DBNAME=newdb << EOD
Y
EOD
}
Runtime output:
Change db ID and name to newdb? (Y/[N]) =>
Operation cancelled at user request
您安装了 expect
(https://en.wikipedia.org/wiki/Expect) 吗?你会想使用专为这类事情设计的。
在下面使用,如果我们使用日志文件那么它将接受 Y 作为默认值并且从不提示。
例如nid target=sys/"as sysdba" dbname=old_db logfile=rename.log