将变量作为exec.Command()的参数传递

I want to read user input and use it as an argument for a command. I got this code:

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
    "os/exec"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter img path: ")
    imgPath, _ := reader.ReadString('
')

    args := []string{imgPath, "stdout", "-l spa+eng"}
    out, err := exec.Command("tesseract", args...).Output()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(string(out))
}

But when I execute it it outputs an error saying exit status 1.

If instead of using the variable imgPath as an argument I write some text directly into the array it works like a charm.

The following code returns a line with the delimiter (I work on Windows and its EOL is ' '), something that wasn't shown when I printed it on the console.

reader := bufio.NewReader(os.Stdin)
imgPath, _ := reader.ReadString('
')

In my case it ended up working after I trimmed ' ' from the input:

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
    "os/exec"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter img path: ")
    imgPath, _ := reader.ReadString('
')
    imgPath= strings.TrimRight(line, "
")

    args := []string{imgPath, "stdout", "-l spa+eng"}
    out, err := exec.Command("tesseract", args...).Output()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(string(out))
}