Go 프로그램에서 내장 Linux 명령 실행
Go 프로그램 내에서 셸 명령을 실행하려고 하면 내장 명령에 문제가 발생할 수 있습니다. 이는 기존 바이너리처럼 $PATH에서 찾을 수 없습니다. 이 문서에서는 Go 프로그램 내에서 내장 Linux 명령을 실행하는 방법을 살펴봅니다.
제공된 예에서 명령이 내장 셸이기 때문에 exec.Command()를 사용하여 직접 "command -v foo"를 실행하면 실패합니다. 기능. 이를 처리하기 위해 다음과 같은 몇 가지 접근 방식이 있습니다.
exec.LookPath
기본 제공 명령을 찾기 위한 Native Go 지원은 exec.LookPath를 통해 제공됩니다. 이 함수는 시스템의 PATH에서 실행 파일을 검색하고 발견되면 전체 경로를 반환합니다. 찾으면 이 경로를 사용하여 명령을 실행할 수 있습니다.
exec.Command with Shell Wrapper
직접 실행이 불가능할 경우 시스템의 셸을 활용할 수 있습니다. 내장된 명령을 실행합니다. 이는 다음과 같은 셸 명령에 명령을 래핑하여 수행할 수 있습니다.
exec.Command("/bin/bash", "-c", "command -v foo")
여기서 "/bin/bash -c" 래퍼는 시스템에 셸 내에서 명령을 실행하도록 지시하여 빌드된 -명령에 액세스할 수 있습니다.
위 내용은 Go 프로그램에서 내장 Linux 명령을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!