我有一个带2个参数的命令。
当我手动运行命令时,我这样做:
cmd -i xyz.dat
hit enter
enter password in the prompt
hit enter
confirm password
我的脚本需要执行上述操作,而不希望用户输入密码。我可以对文件中的密码进行硬编码,但是在执行shell脚本时需要一种成功运行此命令的方法。
截至2月7日, 我希望在我的AIX上安装。当我在命令提示符下键入expect时,提示符更改为期望1.1>操作系统是64位AIX
我已按照以下评论中提到的说明操作,但我一直收到错误 - 无法执行命令;没有这样的文件或目录“?我能够从运行脚本的同一目录手动运行此命令。除此之外,我已经给出了命令的完整路径和 文件。
我正在粘贴另一个程序,我尝试使用root密码,如下所示:我在运行测试程序时收到相同的错误消息。我怀疑这是否与报价有关。
#!/bin/bash
set timeout 20
spawn "su"
expect "Password:" { send:"temp123\r" }
interact
有人可以帮我解决这个错误吗?
答案 0 :(得分:3)
听起来你想要使用expect。 Here是一个包含一些示例的页面。
因此,对于您的命令,您需要以下内容:
#!/usr/bin/expect
set timeout 20
spawn "cmd -i xyz.dat"
expect "<your password prompt" { send "<your password>\r" }
expect "<your password confirmation prompt" { send "<your password>\r" }
interact