여러 인수를 사용하여 명령 실행
Go에서 명령을 실행할 때 인수가 명령에 전달되는 방식에 주의하는 것이 중요합니다. 최근 사용자가 직면한 문제는 특정 인수를 사용하여 "top" 명령을 실행하면 콘솔에서는 작동했지만 exec 패키지를 사용할 때는 실패했다는 것입니다.
문제
"top -n 10 -l 2"를 성공적으로 실행한 사용자 코드가 "top -o cpu -n 10 -l 2"를 실행하지 못했습니다. exec 패키지에서 제공한 오류 메시지는 "-o cpu" 인수가 유효하지 않음을 나타냅니다.
해결책
문제는 인수가 전달되는 방식에 있습니다. 명령. 콘솔의 명령줄 해석기는 인수를 자동으로 분리하여 명령이 인수를 올바르게 구문 분석할 수 있도록 합니다. 그러나 exec 패키지를 사용하는 경우 인수를 명시적으로 분리해야 합니다.
이 특별한 경우의 올바른 코드는 다음과 같습니다.
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
인수를 분리하면 exec 패키지가 다음과 같은 작업을 수행할 수 있습니다. 예상대로 명령에 전달하여 오류를 해결합니다.
위 내용은 콘솔에서 동일한 명령이 작동할 때 내 Go `exec.Command`가 여러 인수로 인해 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!