Функция exec.LookPath

Функция exec.LookPath ищет исполняемый файл в директориях, перечисленных в переменной окружения PATH. Она принимает один параметр - имя файла для поиска, а возвращает абсолютный путь к найденному файлу или ошибку, если файл не найден или не является исполняемым.

Синтаксис

goexec.LookPath(file)

Пример

Давайте найдем путь к исполняемому файлу "ls" в системе:

gopackage main

import (
  "fmt"
  "os/exec"
)

func main() {
  path, err := exec.LookPath("ls")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(path)
}

Результат выполнения кода:

go"/bin/ls"

Пример

Давайте попробуем найти несуществующую команду "unknown":

gopackage main

import (
  "fmt"
  "os/exec"
)

func main() {
  path, err := exec.LookPath("unknown")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(path)
}

Результат выполнения кода:

go"exec: \"unknown\": executable file not found in $PATH"

Пример

Давайте проверим, что функция возвращает ошибку, если файл найден, но не является исполняемым:

gopackage main

import (
  "fmt"
  "os/exec"
)

func main() {
  path, err := exec.LookPath("/etc/passwd")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(path)
}

Результат выполнения кода:

go"stat /etc/passwd: permission denied"

Смотрите также

  • функцию exec.Command,
    которая создает команду для выполнения внешнего процесса
  • функцию exec.CommandContext,
    которая создает команду с контекстом для управления временем выполнения
  • функцию os.Executable,
    которая возвращает путь к текущему исполняемому файлу
  • функцию os.Getenv,
    которая получает значение переменной окружения