如何使用shell脚本将用户名和密码传递给应用程序?

时间:2014-01-06 04:27:05

标签: linux

我想让脚本登录到应用程序,其流程就像

  1. 转到特定目录,(我的脚本=> cd / ld62_prod)
  2. 提供一个将启动应用程序的命令(我的脚本=> drv)
  3. 应用程序将启动,光标将指向我需要提供用户名的位置。
  4. 在给出用户名后,它将显示提示输入密码的下一页(现在光标在这里)。
  5. 现在我的问题是我能够在应用程序启动之前到达,但无法通过脚本提供用户名和密码。

    我的示例脚本是

    cd cd /ld62_prod
    drv
    112233 #username
    112233 #password
    

    我做错了什么。

2 个答案:

答案 0 :(得分:1)

没有安全保障:

您可以使用:

 echo "User name: $0"
 echo "Password: $1"

您可以使用$0$1来使用特定值。

有关详细信息,请参阅 Shell script

安全:

read -s -p "Password: " password

在Linux(和cygwin)下,这个表单适用于bash和sh。但它可能不是标准的Unix sh。

有关更多信息和选项,请在bash中输入“help read”。

$ help read
read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
Read a line from the standard input and split it into fields.
  ...
  -p prompt output the string PROMPT without a trailing newline before
            attempting to read
  ...
  -s                do not echo input coming from a terminal

答案 1 :(得分:0)

您可以使用expect,这是一个标准工具,可以与您的交互式程序/脚本进行通信。其man page说:

  

Expect是一个根据脚本与其他交互式程序“对话”的程序。在脚本之后,Expect知道程序可以期待什么以及正确的响应应该是什么。解释语言提供分支和高级控制结构来指导对话。此外,用户可以在需要时直接进行控制和交互,然后将控制权返回给脚本。