将脚本变量提供给提示用户输入的命令

将脚本变量提供给提示用户输入的命令

我有一个 shellscript ABCD.sh,它有一个将文件上传到服务器的命令,该命令会提示输入用户名和密码。

我不想在那里提供用户名和密码,而是只想将用户名和密码作为外部参数传递,这怎么可能?

username =$1
password=$2
pushcommand

pushcommand要求输入用户名和密码; shellscript 应该自动从$1和获取它$2

答案1

如果pushcommand只是从标准输入中读取第一个用户名,然后读取密码,并用换行符分隔,则可以执行以下操作:

echo "$username\n$password" | pushcommand

这里的“echo”调用将在不同的行上输出用户名和密码变量。
“|”意思是“获取左侧命令的输出,并将其作为右侧命令的输入”。这种构造在 shell 脚本中称为“管道”。

对于编写更复杂的交互脚本,我建议查看预计或者可能克米特。要获得expect 或kermit 的帮助,您必须发布一个示例,说明pushcommand 的交互式使用实际上是什么样子,例如显示什么提示等等。

相关内容