#TIL #bash 고정 인자와 가변 인자를 받는 스크립트
2020-07-01bash에서 고정 인자와 가변 인자가 섞여 있다면 어떻게 처리해야 할까?
우선 가변 인자부터 처리하자. $@
파라미터를 사용하면 가변 인자를 처리할 수 있다.
$ cat ./test #!/usr/bin/env bash for arg in "$@" do echo "$arg" done
$ ./test source target1 "target 2" target3 source target1 target 2 target3
for
문(statement)과 $@
파라미터를 사용하면 전체 인자를 순회할 수 있다. 여기서 source는 고정 인자고 target 인자들은 가변 인자다. 고정 인자만 따로 처리하고 가변 인자를 순회할 수 있을까?
$ cat ./test #!/usr/bin/env bash echo "source: $1" shift for arg in "$@" do echo "$arg" done
$ ./test source target1 "target 2" target3 source: source target1 target 2 target3
shift
내장 명령(builtin)을 사용하면 전체 파라미터 인덱스를 바꿀 수 있다. shift
인자를 생략하면 1칸을 밀어낸다.
참고
- 3.4.2 Special Parameters - gnu.org/software/bash
- 4.1 Bourne Shell Builtins - gnu.org/software/bash
- Remove first element from $@ in bash - stackoverflow.com
- category:
- til 173
@ohyecloudy
, ohyecloudy@gmail.com