2015-01-05 11 views
0

Я пытаюсь перекрестно скомпилировать программу Go, которая выполнит скрипт bash. Можно ли встроить скрипт bash в двоичный файл?Перейти: embed bash script in binary

Я ссылка: Golang serve static files from memory

Не уверен, если это относится к выполнению Баш сценариев, хотя. Я что-то упустил? Некоторые разъяснения или указатели будут очень полезны, спасибо!

ответ

-1

Вы пытались записать данные потока (согласно ссылке go-bindata предоставляет функцию, которая возвращает [] байт) во временный файл?

см: http://golang.org/pkg/io/ioutil/#TempFile

вы можете выполнить с помощью системного вызова

http://golang.org/pkg/syscall/#Exec

, где первый аргумент должен быть оболочка.

+0

Do * not * use 'syscall.Exec', когда [пакет' os/exec'] (https://golang.org/pkg/os/exec/) будет делать. Do * not * использовать временные файлы, когда нет необходимости. –

0

Вы действительно можете напрямую взаимодействовать с системой оболочки в Go. В зависимости от того, что находится в вашем сценарии bash, вы, вероятно, можете полностью преобразовать все, чтобы идти. Например, такие вещи, как обработка файлов, извлечение архивов, вывод текста, запрос на ввод пользователя, загрузка файлов и многое другое, можно сделать из Go. Для всего, что вам абсолютно необходимо для оболочки, вы всегда можете использовать golang.org/pkg/os/exec.

Я написал фрагмент, демонстрирующий действительно простую командную оболочку на основе Go. В основном он передает вход, выход и ошибку между пользователем и оболочкой. Его можно использовать в интерактивном режиме или для непосредственного запуска большинства команд оболочки. Я упоминаю его здесь в основном, чтобы продемонстрировать возможности ОС Go. Проверьте это: github.com/lee8oi/goshell.go