linux의 set 명령어는 다양한 기능을 가지고 있다.
변수 출력
set 명령어를 인수 없이 실행하면 셸에 설정된 환경변수 및 변수 목록을 출력한다.
옵션
set 명령어의 옵션으로 셸의 다양한 동작 모드를 설정할 수 있다.
각 옵션 앞에 -를 붙여서 사용하면(-a
) 옵션을 추가한다는 뜻이고, +를 붙이면 (+a
)는 옵션을 삭제한다는 뜻이다.
-
-a
(allexport): 모든 변수를 자동으로 내보내기한다. 이 옵션을 사용하면 새로 만들거나 수정한 모든 변수가 자동으로 환경 변수가 된다.-
예시
-
-
-b
(notify): 백그라운드 작업이 끝나면 즉시 알려준다. 보통은 다음 프롬프트가 나타날 때 알려주지만, 이 옵션을 사용하면 작업이 끝나자마자 바로 알림을 받을 수 있다.-
예시
-
-
-B
(braceexpand): 중괄호 확장을 활성화한다. 이 기능을 사용하면 여러 문자열을 간단히 생성할 수 있다.-
예시
-
-
-C
(noclobber): 기존 파일을 실수로 덮어쓰는 것을 방지한다.-
예시
-
-
-e
(errexit): 오류가 발생하면 스크립트 실행을 즉시 중단한다. 디버깅에 유용하다.-
예시
-
-
-f
(noglob): 파일명 확장(와일드카드 사용)을 비활성화한다.-
예시
-
-
-h
(hashall): 실행한 명령어의 위치를 기억한다. 이를 통해 같은 명령어를 다시 실행할 때 더 빠르게 찾을 수 있다.-
예시
-
-
-H
(histexpand): 히스토리 확장을 활성화한다. ’!’를 사용해 이전 명령어를 쉽게 재사용할 수 있다.-
예시
-
-
-k
(keyword): 모든 키워드 인자를 환경 변수로 취급한다.-
예시
-
-
-m
(monitor): 작업 제어를 활성화한다. 이를 통해 작업을 일시 중지하거나 백그라운드로 보낼 수 있다.-
예시
-
-
-n
(noexec): 명령어를 실행하지 않고 구문 오류만 검사한다. 스크립트 디버깅에 유용하다.-
예시
-
-
-o
: 옵션 없이 사용하면 현재 설정된 모든 옵션을 보여준다.+o
를 사용하면 현재 설정을 재현할 수 있는 명령어 목록을 출력한다.-
예시
-
위치 파라미터 조작
set 명령어를 사용하여 $1
, $2
, $3
과 같은 위치 파라미터에도 값을 대입할 수 있다.
값이 하이픈으로 시작하면 옵션으로 인식한다. --
뒤에 인수를 지정하면 하이픈으로 시작하는 값도 변수로 인식한다.
참고