Спецификация языка программирования Go
Передача аргументов в ... параметры
Если f является вариативным с типом конечного параметра ... T, то внутри функции аргумент эквивалентен параметру типа [] T. При каждом вызове f аргумент, передаваемый в последний параметр, представляет собой новый фрагмент типа [] T, последовательные элементы которого являются фактическими аргументами, которые все должны быть присвоены типу T. Таким образом, длина фрагмента равна количеству аргументы привязаны к последнему параметру и могут отличаться для каждого сайта вызова.
Пакет exec
команда func
func Command(name string, arg ...string) *Cmd
Команда возвращает структуру Cmd для выполнения указанной программы с заданными аргументами.
Возвращаемое поле Cmd Args состоит из имени команды, за которым следуют элементы arg, поэтому arg не должен включать само имя команды. Например, Command («эхо», «привет»)
Например,
package main
import (
"fmt"
"os/exec"
)
func main() {
name := "echo"
args := []string{"hello", "world"}
cmd := exec.Command(name, args...)
out, err := cmd.Output()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(out))
}
Выход:
hello world