본문 바로가기
카테고리 없음

go 언어 명령어 인자와 실행파일 이름 동시에 출력하기

by Warehaus 2023. 5. 7.

 

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