Wireframe

NU Shell에서 여러 인자를 외부 명령에 전달하기

컴파일러 명령과 같이 많은 양의 인자를 전달해야 하는 명령을 Nu shell 스크립트에서 호출할 때, 명령들을 변수에 저장하여 호출하면 하나의 변수가 하나의 인자로 취급되어 예상했던 대로 작동하지 않는 문제가 있다. 예를 들어 vim을 빌드할 때 명령줄에서는 다음과 같이 실행한다.

> mingw32-make -f Make_ming.mak CC=GCC GUI=NO vim.exe

이 때 각 인자를 하나의 변수에 넣고 실행하면?

> let build_opt = "CC=GCC GUI=NO vim.exe"
> mingw32-make -f Make_ming.mak $build_opt

$build_opt 의 값이 따옴표로 묶인 것처럼 하나의 인자로 전달되어 제대로 컴파일이 되지 않는다. 이 경우에는 문자열 변수를 split row 명령으로 분해하여 파이프를 통해 넘겨준다.

> ($build_opt | split row ' ') | mingw32-make -f Make_ming.mak $in

$in 은 파이프라인으로 넘겨받은 값을 가리키는 변수로 위와 같은 경우외에 많은 상황에서 유용하게 사용할 수 있다.

Exit mobile version