1. set command
set 명령은 현재 셸에서 환경 변수를 설정하고 표시하는 데 사용됩니다. 환경 변수는 셸에서 실행되는 프로세스에 사용할 수 있는 값이며 파일 경로, 시스템 설정 및 사용자 기본 설정과 같은 정보를 저장하는 데 사용할 수 있습니다.
$ set MY_VAR="Hello World"
$ echo $MY_VAR
Hello World
$ set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globstar:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
DIRSTACK=()
EUID=1000
GROUPS=()
HISTCONTROL=ignoreboth
HISTSIZE=1000
HOME=/home/user
LANG=en_US.UTF-8
...
MY_VAR=Hello World
...
이 예제에서는 set 명령을 사용하여 MY_VAR 환경 변수를 "Hello World" 값으로 설정합니다. 그런 다음 echo 명령을 사용하여 "Hello World"를 출력하는 MY_VAR 변수의 값을 표시합니다. 마지막으로 인수 없이 set 명령을 사용하여 현재 셸의 모든 환경 변수를 표시합니다.
set 명령의 출력에서 볼 수 있듯이 BASH, HOME 및 LANG과 같이 셸에서 기본적으로 설정되는 다른 많은 환경 변수가 있습니다. 출력에는 변수 이름과 해당 값이 표시됩니다.
2. set command option
(1) set -e: 이 옵션은 스크립트의 명령이 실패하면 즉시 종료하도록 쉘에 지시합니다. 이는 오류가 발생하는 즉시 스크립트 실행을 중지하는 데 유용합니다.
(2) set -x: 이 옵션은 디버그 모드를 활성화하여 쉘이 실행될 때 각 명령을 표시하도록 합니다. 이는 오류가 발생하는 위치를 확인하기 위해 스크립트 실행을 추적하는 데 유용합니다.
(3) set -u: 이 옵션을 사용하면 정의되지 않은 변수를 참조하려고 하면 오류와 함께 쉘이 종료됩니다. 이는 다른 방법으로는 알아차리지 못할 수 있는 오류를 포착하는 데 유용합니다.
(4) set -o: 이 옵션을 사용하면 다양한 셸 옵션을 활성화 또는 비활성화할 수 있습니다. 예를 들어, set -o noclobber를 사용하여 우발적인 파일 덮어쓰기를 방지할 수 있습니다.
(5) set -n: 이 옵션을 사용하면 쉘이 스크립트를 실제로 실행하지 않고 구문 오류에 대해 스크립트를 확인합니다. 이는 스크립트가 실행되기 전에 오류를 포착하는 데 유용합니다.
(6) set -v: 이 옵션은 쉘이 각 명령을 읽을 때 표시하도록 합니다. 이는 쉘 스크립트를 디버깅하는 데 유용합니다.
다음은 set -e 및 set -x 옵션을 사용하는 예입니다.
#!/bin/bash
set -e
set -x
echo "This script will fail"
false
echo "This line won't execute"
이 예에서는 set -e 옵션을 사용하여 명령이 실패하면 스크립트 실행이 중지되도록 합니다. 그런 다음 set -x를 사용하여 디버그 모드를 활성화합니다. 그런 다음 스크립트는 항상 실패하는 false 명령을 실행하려고 시도합니다. set -e 옵션을 활성화했기 때문에 false 명령이 실패한 직후 스크립트 실행이 중지되고 최종 echo 명령이 실행되지 않습니다.
이러한 옵션 중 일부는 모든 시스템 또는 셸에서 사용하지 못할 수 있습니다. 사용 가능한 옵션의 전체 목록은 셸 설명서를 참조할 수 있습니다.
댓글