У меня есть скрипт bash, в котором я получаю ответ API в формате строки. Ответ имеет следующий формат:
стек тестирования foo bar по потоку
Теперь у меня есть следующий скрипт bash для преобразования его в массив и дальнейшей обработки:
#!/bin/bash
result=$(curl "API URL")
resp=($result)
for i in "${resp[@]}"
do
echo "$i"
done
Проблема:
Если я запускаю этот скрипт вручную в терминале (делая его исполняемым), он работает нормально. Но когда я пытаюсь запустить его, используя команду Golang sh
ExecuteCommand("sh /path/to/directory/test.sh")
func ExecuteCommand(command string) error{
cmd := exec.Command("sh", "-c",command)
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
return err
}
fmt.Println("Result: " + out.String())
return nil
}
Это выдает ошибку:
test.sh: Syntax error: "(" unexpected
Может ли кто-нибудь помочь мне, что я делаю не так?