如何在Bash中将输入传递给文件中的命令

时间:2014-09-30 05:54:34

标签: windows bash vbscript git-bash

在Git Bash中,我运行了以下命令:

git pull --rebase

现在提示Username&然后Password

如何编写脚本,以便自动从文件中获取所需的输入。

我已经尝试过了:

git pull --rebase <pass //did not worked

当然,git credentials helper&amp; config解决方案很好,但我正在寻找一种通用的方法来读取文件中的输入。

2 个答案:

答案 0 :(得分:1)

  

我正在寻找一种从文件读取输入的命令的通用方法。

  • my_command < file使路径file内容成为my_command的标准输入。
  • my_command <<< value使字符串 value成为my_command的标准输入。这也可以是my_command <<< "$variable"等变量替换。

More about redirection.

答案 1 :(得分:0)

因为,我在Windows上。我写了一个windows vbscript给我做任务。

这是代码的样子:

Dim oShell
Set oShell = WScript.CreateObject("WScript.Shell")

Dim oEx
Set oEx = oShell.Exec("git stash")
Do Until oEx.Stdout.AtEndOfStream
    WScript.Echo oEx.Stdout.ReadLine()
Loop

WScript.Echo
WScript.Echo
WScript.Echo "=================Pull Rebase==================="
Dim oExPull
Dim tempString
Dim foundConflict
foundConflict = 0
Set oExPull = oShell.Exec("git pull --rebase")
Wscript.sleep 100
oShell.SendKeys "username{ENTER}"
oShell.SendKeys "password{ENTER}"
Do Until oExPull.Stdout.AtEndOfStream
    tempString = oExPull.Stdout.ReadLine()
    WScript.Echo tempString
    If foundConflict<=0 Then
        foundConflict = InStr(tempString,"CONFLICT")
    End If
Loop

If foundConflict=0 Then
    WScript.Echo
    WScript.Echo
    WScript.Echo "=================Stash Pop==================="
    Dim oExStashPop
    Set oExStashPop = oShell.Exec("git stash pop")
    Do Until oExStashPop.Stdout.AtEndOfStream
        WScript.Echo oExStashPop.Stdout.ReadLine()
    Loop
Else
    WScript.Echo "============Conflict Found ========================="
End If