Вы действительно можете напрямую взаимодействовать с системой оболочки в Go. В зависимости от того, что находится в вашем сценарии bash, вы, вероятно, можете полностью преобразовать все, чтобы идти. Например, такие вещи, как обработка файлов, извлечение архивов, вывод текста, запрос на ввод пользователя, загрузка файлов и многое другое, можно сделать из Go. Для всего, что вам абсолютно необходимо для оболочки, вы всегда можете использовать golang.org/pkg/os/exec.
Я написал фрагмент, демонстрирующий действительно простую командную оболочку на основе Go. В основном он передает вход, выход и ошибку между пользователем и оболочкой. Его можно использовать в интерактивном режиме или для непосредственного запуска большинства команд оболочки. Я упоминаю его здесь в основном, чтобы продемонстрировать возможности ОС Go. Проверьте это: github.com/lee8oi/goshell.go
Do * not * use 'syscall.Exec', когда [пакет' os/exec'] (https://golang.org/pkg/os/exec/) будет делать. Do * not * использовать временные файлы, когда нет необходимости. –