2023.05.01 - [CS/Go] - [프로그래밍 언어] Go 언어 기초 - 커맨드라인 인수와 os.Args 변수
[프로그래밍 언어] Go 언어 기초 - 커맨드라인 인수와 os.Args 변수
2023.04.30 - [CS/Go] - [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world 안녕하세요 warehouse 입니다. 최근 프로젝트를 진행하면서 Go
armin.tistory.com
이미 커맨드 라인 인수에서
어느정도 다뤘던 내용이지만
예시를 위주로 다시한번 작성합니다.
Command-line Argument 출력
package main
import (
"fmt"
"os"
"strings"
)
func main() {
fmt.Println(strings.Join(os.Args[1:], " "))
fmt.Println(os.Args[1:])
}
빌드 후 실행결과는 다음과 같습니다.
./echo3 1 2 3 4
1 2 3 4
[1 2 3 4]
실행 명령어에 해당하는 os.Args[0] 도 출력이 가능하도록
코드를 수정합니다.
package main
import (
"fmt"
"os"
"strings"
)
func main() {
fmt.Println(strings.Join(os.Args[1:], " "))
fmt.Println(os.Args[1:])
// 명령어 함께 출력
fmt.Println(strings.Join(os.Args[0:], " "))
fmt.Println(os.Args[0:])
}
새로 작성 된 코드에는 echo3 이라는 실행파일 이름도 출력되는 것을 확인할 수 있습니다.
./echo3 1 2 3 4
1 2 3 4
[1 2 3 4]
./echo3 1 2 3 4
[./echo3 1 2 3 4]
반응형
다른 예제로 각 인자의 인덱스 값을 함께 출력하는 코드를 구현하면
다음과 같이 만들 수 있습니다.
package main
import (
"fmt"
"os"
)
func main() {
// for loop
for i := 0; i < len(os.Args); i++ {
fmt.Println("index (", i, "):", os.Args[i])
}
}
출력은 아래와 같습니다.
$ ./echo3 1 2 3 4
index ( 0 ): ./echo3
index ( 1 ): 1
index ( 2 ): 2
index ( 3 ): 3
index ( 4 ): 4