传递 shell 脚本中的命令期望的值

Passing values that the commands in a shell script are going to expect

我正在编写一个 shell 脚本,其中有一堆命令,其中一些命令需要用户输入。例如,如果我想将更改推送到 git,我会使用命令 git push,然后它会询问我的用户名和密码。传统的 shell 脚本在需要用户名时会暂停以等待用户输入。我想要做的是,将此用户名和密码作为命令行参数传递,命令应该获取该值。

请注意: 1. 上述问题与git无关,我只是举个例子。我知道我总是可以将我的凭据存储在特定于 git 的配置文件中,然后它不会提示我输入凭据。我只想知道如何完成这种事情的技术。

  1. 再一次,关于上面的例子,安全不是问题。目前,我不关心从命令行以明文形式传递密码。

我尝试 google 它,但没有得到满意的结果。对此的任何想法都会有所帮助。

shell 中的命令名称参数由 $n 引用,其中 n 是以 0 开头的参数编号,即脚本名称。例如下面的脚本:

#!/bin/bash
echo [=10=] #name of the script
echo  #the first parameter
echo  #the second parameter

将打印程序名称和参数

您需要使用"expect"命令发送密码。

参考这个答案 using expect in bash script