정보
- 업무명 : 쉘 스크립트 사용법 (변수를 사용하는 법)
- 작성자 : 박진만
- 작성일 : 2020-07-17
- 설 명 :
- 수정이력 :
내용
[특징]
- 쉘 스크립트를 사용할 때의 유용한 팁 모음
[활용 자료]
- 없음
[자료 처리 방안 및 활용 분석 기법]
- 없음
[사용법]
- 작업 환경 구축
- 소스 코드 작성 및 실행
- 실행 결과 확인
[사용 OS]
- Linux (CentOS v7.0)
- VMware Workstation Pro v15.5
[사용 언어]
- Bash Script
소스 코드
[일반적인 변수의 설정과 참조]
[변수에 값을 설정]
VAR1=123456
VAR2=hogehoge
VAR3=" a b c d e f g "
- 다른 프로그래밍 언어와 같이 =를 사용한다.
- 특히 쉘 스크립트는 C 언어 등과 같이 =를 사용하여 변수에 값을 설정한다. 그러나 C 언어와 달리 =앞뒤에 공백이 있어서는 안된다 .
- 또한 변수 이름의 대소 문자를 구분하므로 변수 VAR 및 변수 var는 별개로 취급된다. 또한 쉘 변수에 '형태'는 존재하지 않기 때문에, 문자열이나 숫자를 구별없이 설정한다.
- 포인트를 정리하면 다음과 같다 (특히 2번는 초보자가 빈번히 발생하므로 주의 필요).
- = 사용
- 값을 설정할 때 변수 이름 앞에 $를 붙이지 않는다 ( $참조 전용)
- =의 앞뒤에 공백을 넣지 (전후에 공백이있을 경우 오류)
- 형식은 존재하지 않는다 (declare 명령이나 typeset 명령으로 비슷한 수 있지만 권장하지 않음)
- 변수 이름의 대소 문자는 구별된다 ( VAR와 var는 별개)
[명령의 실행 결과를 변수로 설정]
[표준 출력만을 변수로 설정]
VAR=`command`
→ 화면에 표시되는 명령의 실행 결과 (표준 출력에 출력되는 문자열)을 모든 변수에 설정한다.
- 계산 결과 문자열의 편집 결과 등 명령의 출력을 변수로 설정하려면 " ``"(역 따옴표)를 사용한다.
- 그러나이 방법으로 변수에 설정되는 표준 출력에 출력 된 명령의 실행 결과만으로, 표준 에러 출력에 출력 된 명령의 실행 결과는 변수에 설정되지 .
- 결과적으로,
- 명령이 성공적으로 실행 된 경우 결과가 변수로 설정됩니다 (화면에 아무것도 출력되지 않음)
- 오류가 발생한 경우 화면에 오류가 출력된다.
$ VAR=`date`
$ echo $VAR
2020년 7월 17일 금요일 22:00:23 KST
$ VAR=`ls hogehoge`
ls: hogehoge: 그런 파일이나 디렉토리가 없습니다.
[표준 오류 출력만을 변수로 설정]
- 명령의 표준 오류 출력만을 변수로 설정하려면 다음과 같이 한다.
VAR=`command 2>&1 >/dev/null`
→ 명령의 오류 메시지만을 변수로 설정
- 미리 >/dev/null원래 표준 출력을 버리고하면서 2>&1로 표준 오류 출력을 표준 출력으로 리디렉션하여 표준 오류 출력만을 변수로 설정하는 것이 가능하게된다.
$ ls hoge >/dev/null
ls : hoge : 그런 파일이나 디렉토리가 없습니다
# ↑ 표준 에러 출력에 에러 메시지가 출력됨.
$ VAR=`ls hoge 2>&1 >/dev/null`
$ echo $VAR
ls : hoge : 그런 파일이나 디렉토리가 없습니다
# ↑ 표준 오류 출력 오류 메시지가 변수로 설정되어 있다.
$ touch hoge
$ VAR=`ls hoge 2>&1 >/dev/null`
$ echo $VAR
# ↑ 원래 표준 출력은 버리고 있기 때문에 오류가 발생하지 않은 경우 변수는 비운다
[표준 출력 · 표준 오류 출력을 모두 변수로 설정]
- 명령의 실행 결과를 오류를 포함하여 변수로 설정하려면 다음과 같이한다.
VAR=`command 2>&1`
→ 표준 출력 이외에 표준 에러 출력에 출력되는 명령의 실행 결과를 모든 변수에 설정한다.
- 리디렉션을 지정하면 오류가 발생하는 경우도 명령의 실행 결과를 변수에 얻을 수있게된다. 이 지정 방법이라고 명령의 실행 결과는 오류 메시지를 포함하여 화면에 전혀 출력되지 않게된다.
$ VAR=`ls hogehoge`
ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
$ echo $VAR
# ↑ 명령의 실행 결과를 표준 에러 출력에 출력되어 있기 때문에 변수에 아무것도 설정되어 있지 않음.
$ VAR=`ls hogehoge 2>&1`
$ echo $VAR
ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
# ↑ 표준 오류 출력을 표준 출력으로 리디렉션하면 표준 오류 출력을 변수로 설정된다.
[백 쿼트의 대체 기능]
- 백 쿼트와 같은 기능을 $(command)로 대체 가능.
VAR=$(command)
→ 실행 결과는 역 따옴표를 사용했을 경우와 같게되지만, 더 높은 기능.
$ echo $VAR
2020년 7월 17일 금요일 03:01:30 KST
#↑# ↑ 백 쿼트와 마찬가지로 표준 출력에 출력 변수로 설정되어있다.
$ VAR2=$(ls hogehoge)
ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
$ echo $VAR2
# ↑ 표준 에러 출력에 출력 변수로 설정되지 않는다.
$ VAR2=$(ls hogehoge 2>&1)
$ echo $VAR2
ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
# ↑ 백 쿼트의 경우와 마찬가지로, 리디렉션을 사용하여 표준 에러 출력에 출력도 변수로 설정할 수있다.
- 이러한 명령의 실행 결과, 즉 명령이 표준 출력에 출력 할 문자열을 변수에 저장하려면 ``(역 따옴표) 또는 $()를 사용한다.
- 또한 $()더 높은 기능이므로 다음과 같이 중첩도 가능하다.
$ var=$(expr $(expr $(date '+%Y') + $(date '+%m')) + $(date '+%d'))
$ echo $var
2041
(이 계산에 특히 깊은 의미는 없다. 단지 중첩의 사용 예이다.)
[변수의 값을 참조]
- 변수 VAR1 값을 표시하기
echo $VAR1
- 변수 VAR 값과 "1"을 표시
echo ${VAR}1
- 변수 VAR2 값과 변수 VAR3 값을 표시
echo ${VAR2}${VAR3}
- 변수의 값을 다른 변수로 설정
VAR="$VAR1"
- 변수 VAR 변수 VAR1 값을 설정한다.
- 변수 VAR 변수 VAR2와 변수 VAR3 값을 결합한 값을 설정
VAR="${VAR2}${VAR3}"
→ 변수의 값을 참조하려면 변수 이름 앞에 $를 붙인다.
- 변수의 값을 참조하려면 변수 명 앞에 $를 붙인다. 참조하는 변수를 명확하게하는 경우 {}(중괄호)에서 변수 이름을 포위한다.
- 예를 들어 아래의 " $VAR1"와 " ${VAR}1"는 다른 변수를 참조한다. 전자는 변수 VAR1 후자는 변수 VAR을 참조된다 (변수 VAR 및 변수 VAR1 모두가 정의되어있는 경우).
$ VAR=hoge
$ VAR1=fuga
$ echo $VAR1
fuga
$ echo ${VAR}1
hoge1
- 또한 변수 {}로 묶어 쉘 스크립트의 가독성을 높이는 데에도 효과적이다. " ${foo}${bar}'처럼 여러 변수를 동시에 참조하는 경우 등은 {}사용하는 것이 개별 변수를 쉽게 구별된다.
$ VAR1=123456
$ VAR2=abcdefg
$ VAR3=" a b c d e f g "
$
$ echo $VAR1
123456
# ↑ 변수 VAR1 값을 표시한다.
$ echo ${VAR}1
1
# ↑ 변수 VAR 값과 "1"을 표시한다. 위의 결과와 비교하면 "`$ VAR1`"며 "`$ {VAR} 1`"는 별개임을 알 수있다. 또한 변수 VAR 값이 설정되어 있지 않기 때문에 "" ""(공백)로 대체된다.
$ echo ${VAR2}${VAR3}
abcdefg a b c d e f g
# ↑ 변수 VAR2와 변수 VAR3 값이 연결되어 표시된다. "echo $ VAR2 $ VAR3"라고 써도 결과는 동일하지만, 쉘 스크립트를 작성할 경우 가독성을 높이기 위해도 위와 같이 "{}"로 묶을 것이 바람직하다.
[변수의 특수 참조 방법]
→ 변수의 상태에 따라 행동을 바꾸는 특수 참조 방법.
- 변수에 값이 설정되어 있지 않은 경우에 일시적으로 값을주고 볼 등의 특수 참조가 가능하다. 하지만 이들을 함부로 사용하면 쉘 스크립트의 가독성이 저하되고, 뜻밖의 버그를 낳을 가능성이 있기 때문에 너무 많이는하지 않는 편이 좋을 것이다.
[특수 참조 방법 일람표]
구분 | 설명 |
${VAR=aaa} | 변수 VAR을 사용하지 않는 경우에만 변수 VAR에 문자열 "aaa"를 대입 문자열 "aaa"를 반환한다. 변수 VAR이 NULL 값을 포함 이미 사용 된 경우, 변수 VAR에 대입하지 않고, 변수 VAR 값을 돌려 준다. |
${VAR:=aaa} | 변수 VAR 미사용 혹은 NULL의 경우에만 변수 VAR에 문자열 "aaa"를 대입 문자열 "aaa"를 반환한다. 변수 VAR이 NULL 값의 경우를 제외하고 이미 사용 된 경우 변수 VAR에 대입하지 않고, 변수 VAR 값을 돌려 준다. |
${VAR-aaa} | 변수 VAR을 사용하지 않는 경우에만 문자열 "aaa"를 반환한다. 변수 VAR이 NULL 값을 포함 이미 사용 된 경우, 변수 VAR 값을 돌려 준다. 또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 . |
${VAR:-aaa} | 변수 VAR 미사용 혹은 NULL 값의 경우에만 문자열 "aaa"를 반환한다. 변수 VAR가 NULL이 아닌 값으로 이미 사용되고있는 경우, 변수 VAR 값을 돌려 준다. 또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 . |
${VAR+aaa} | 변수 VAR이 NULL 값도 포함 이미 사용 된 경우에만 문자열 "aaa"를 반환한다. 변수 VAR을 사용하지 않는 경우 NULL 값을 반환한다. 또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 . |
${VAR:+aaa} | 변수 VAR이 NULL 값 이외에서 이미 사용되고있는 경우에만 문자열 "aaa"를 반환한다. 변수 VAR이 NULL 값 또는 사용하지 않은 경우 NULL 값을 반환한다. 또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 . |
[NULL 값]
- 여기서 NULL 값은 VAR=""및 버튼 VAR=처럼 빈 값 (빈) 상태를 의미한다.
[특수 참조 방법의 실행 결과 요약]
[변수의 값을 변수 이름으로 값을 참조]
eval echo '$'$VAR
→ eval 명령을 사용하여 변수를 이중으로 전개한다.
- eval 명령에서 변수 VAR을 확장하고 더 인용 해 놓았다 $을 이용하여 쉘 변수를 다시 전개한다.
- 이에 따라 변수 VAR에 설정되어 있던 값을 변수로 참조 할 수있게된다. 이를 위해 첫째의 $1 차 변수 확장시 쉘 해석되지 않도록 쿼트 할 필요가있다.
$ FOO="BAR"
$ BAR="SUCCESS"
$ eval echo '$'$FOO
SUCCESS
# ↑ 변수 FOO로 설정되어있는 값을 변수 이름으로 참조하고있다.
- eval 명령은 먼저 변수 FOO가 확장되고 명령 줄 echo $BAR이된다. 그 다음, echo 명령을 실행 변수 BAR가 전개된다. 따라서 결과적으로 변수 FOO로 설정되어 변수 이름의 변수를 참조하게된다. 예를 들어 변수 FOO에 "foo"가 설정되어있는 경우는 foo 변수의 값을 참조하게 된다.
[변수 제거]
unset VAR
→ unset 명령으로 변수를 제거한다.
- 변수를 제거하려면 unset 명령으로 삭제할 변수 이름을 지정하고 실행한다. 변수 이름을 지정하는 경우에는 $붙이지 않고 변수 이름만을 지정한다.
- unset 명령이 실행되면 대상이 된 변수는 값이 삭제 될뿐만 아니라 사용하지 않는 상태로 돌아온다.
[변수를 읽기 전용으로 설정]
readonly VAR="hogehoge"
→ 변수 설정시 readonly를 지정하여 읽기 전용으로한다.
- 변수 설정시 readonly지정하는 것으로, 그 변수는 이후 읽기 전용이며 값을 변경하려고 하면 에러가 출력된다. 즉 readonly함으로써 변수를 상수 화하는 것이 가능하게된다.
[특별한 변수와 참조 요약]
구분 | 설명 |
$? | 이전에 실행 된 명령의 종료 상태가 설정되는 변수 |
$! | 백그라운드에서 실행 된 명령의 프로세스 ID가 설정되는 변수 |
$- | set 명령으로 설정된 플래그 또는 쉘을 시작할 때 지정된 플래그 목록을 설정하는 변수 |
$$ | 명령 자신의 PID (프로세스 ID)가 설정되는 변수 |
$# | 실행시 지정된 인수의 개수 가 설정되는 변수 |
$@ $* | 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 모든 매개 변수가 설정되는 변수 |
$LINENO | 이 변수를 사용하는 행의 행 번호가 설정되는 변수 |
${PIPESTATUS[@]} | 파이프로 연결 한 각 명령의 종료 상태가 설정되는 변수 (배열) |
$1, $2, ..., ${10}... | set 명령 또는 쉘 스크립트의 N 개의 눈 인수가 설정되는 변수 (위치 매개 변수라고도 함) |
[각 특수 변수에 대한 자세한 설명]
- 이전에 실행 된 명령의 종료 상태가 설정되는 변수
$?
명령에 성공할 경우 "0"충돌의 경우는 「0 이외의 수」가 출력된다.
- 쉘 스크립트에서는 exit 명령에 준 인자가 그 쉘 스크립트의 종료 상태가된다. 예를 들어 exit 2쓴다면 그 쉘 스크립트의 종료 상태는 "2"
- 함수 return의 경우도 마찬가지로 지정된 인수가 그 함수의 종료 상태가된다.
- 백그라운드에서 실행 된 명령의 프로세스 ID가 설정되는 변수
$!
- sleep 100 &같이 &함께 실행하면 명령은 백그라운드에서 실행된다. 이 경우 변수 $!는 sleep 명령의 PID (프로세스 ID)가 설정되어있다.
- set 명령으로 설정된 플래그 또는 쉘을 시작할 때 지정된 플래그 목록을 설정하는 변수
$-
- 변수 $-의 값이 "abc"이면 플래그는 "-abc"라는 것이다.
- 명령 자신의 PID (프로세스 ID)가 설정되는 변수
$$
- 쉘 스크립트에서 echo $$와 같이 기술하면 쉘 스크립트가 실행되었을 때의 PID 취득 할 수있는 PID (은 OS에서 고유하게 할당).
- 이 변수를 사용하는 기술은 쉘 스크립트에서 생성하는 파일 확장명에 변수 $$를 지정하는 것이있다 (eg tempfile.$$). 변수 $$를 확장 지정하여 쉘 스크립트 실행마다 만들 파일 이름을 바꿀 수 있기 때문에 동일한 쉘 스크립트를 동시 실행 한 경우, 동시 실행 된 각 스크립트가 동시에 동일한 파일에 출력하고 버리는 것을 방지 할 수 있다.
- 실행시 지정된 인수의 수가 설정되는 변수
$#
→ 쉘 스크립트 실행시 또는 set 명령 실행시 매개 변수의 수가 설정되는 변수.
- 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 매개 변수 수는 변수 $#에 자동으로 설정된다. 지정된 인수의 수를 확인하고 싶은 경우에는이 변수를 사용한다.
- 예를 들어
- $ ./command.sh AAA BBB CCC같은 실행 된 경우 쉘 스크립트 command.sh에서 변수 $#를 참조하면 그 값은 "3"이다.
- 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 모든 매개 변수가 설정되는 변수
$@
$*
→ 쉘 스크립트 또는 set 명령의 모든 인수가 설정되는 변수.
- 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 모든 매개 변수는 변수 $@와 변수 $*자동으로 설정된다.
- 모든 매개 변수의 목록을 얻을 경우 두 변수를 참조해도 결과는 동일하지만, 큰 따옴표 ( "")로 묶인 경우 동작이 다르다.
- 자세한 내용은 다음과 같다.
- 변수 $@를 "" ""로 묶인 경우 저장되어있는 개개의 값을 각각 "" ""로 묶인 상태로 전개된다.
예를 들어, 저장되는 값이
"aaa" "bbb" "ccc"(※ set "aaa" "bbb" "ccc") 일 때
그렇다면 " "$@""는
"aaa" "bbb" "ccc"
처럼 전개된다.
- 변수 $*는 $@달리 "" ""로 묶인 경우 저장되어있는 모든 값을 하나의 "" ""로 묶인 상태로 전개된다.
예를 들어, 저장되는 값이
"aaa" "bbb" "ccc"(※ set "aaa" "bbb" "ccc")
그렇다면 " "$*""는
"aaa bbb ccc"
처럼 전개된다.
- 예를 들어, 다음과 같은 쉘 스크립트 (all_parameters.sh)를 실행한다면.
#!/bin/bash
echo '1."$@"GO---------------------------------------'
for i in "$@"
do
echo $i
done
echo ""
echo '2."$*"GO---------------------------------------'
for i in "$*"
do
echo $i
done
- 이 쉘 스크립트 all_parameters.sh의 실행 결과는 다음과 같게 된다.
$ ./all_parameters.sh aaa bbb ccc ddd eee fff ggg
1."$@" GO ---------------------------------------
aaa
bbb
ccc
ddd
eee
fff
ggg
2."$*" GO ---------------------------------------
aaa bbb ccc ddd eee fff ggg
$
- 위의 실행 결과대로 저장되는 값은 동일하지만 동작이 전혀 다른것을 알 수 있다.
- " "$@""에 전개 한 값은 각 값을 개별적으로 변수 i에 저장되기 때문에 각각 한 행씩 총 7 라인 출력된다. 그와는 달리 " "$*""에서 전개 된 값이고, 모든 값이 한 번에 변수 i에 저장되기 때문에 한 줄에 모든 값이 출력된다.
- 즉, 변수 배포 할 때 for 문은 다음과 같은 상태에 있다.
# "$@"
for i in "aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg"
# "$*"
for i in "aaa bbb ccc ddd eee fff ggg"
- 따라서 쉘 스크립트에서 for 문을 사용하여 각 매개 변수에 대해 별도의 작업을 수행하려면 " "$*""대신 " "$@""를 사용한다 .
- 변수를 사용하는 행의 행 번호가 설정되는 변수
$LINENO
- 디버깅에 유용한 행 번호가 설정되어있는 변수. 예를 들어, 쉘 스크립트에서 5 번째 줄에서 이 변수를 사용했다고 하면 거기에 변수 LINENO의 값은 "5"가된다.
- 파이프로 연결 한 각 명령의 종료 상태가 설정되는 변수 (배열)
${PIPESTATUS[@]}
- 파이프 ( |)에 의해 연결된 각 명령의 종료 상태가 설정 설정되어있는 변수 (배열).
- 변수 $?는 파이프의 맨 마지막에있는 명령의 종료 상태 밖에 볼 수 없지만,이 변수를 사용하여 파이프의 앞이나 중간에있는 명령의 종료 상태를 참조 할 수있다 (불행히도 bash 만 ksh에서는 사용할 수 없다).
- 위치 매개 변수
$0
$1
$2
$3
・・・
→ 쉘 스크립트 또는 set 명령의 각 인수가 개별적으로 설정되는 변수.
- $0, $1, $n는 위치 매개 변수라는 특수 변수이다.
- 쉘 스크립트 실행시 또는 set 명령 실행시 매개 변수에 지정된 값은 위치 매개 변수라는 특별한 변수에 자동으로 설정된다.
- 이러한 위치 매개 변수 " $1="1234""처럼 스스로 임의의 값을 설정할 수 없다. 자신이 원하는 값을 설정하려면 set 명령을 사용해야 싶어한다.
[위치 매개 변수의 예]
$ /usr/local/bin/command.sh -a aaa -b bbb -c ccc
- 위와 같이 실행하면 쉘 스크립트 command.sh 내에서 변수 $1를 참조하여 가장 선두에 지정된 매개 변수 "-a"를 얻을 수있다.
[위치 매개 변수 요약]
- 변수 이름이 자동으로 설정되는 값
구분 | 설명 |
$0 | 실행 된 쉘 스크립트 이름이 설정된다. $ ./test.sh실행하는 경우 $0는 「./test.sh」가된다. $ /usr/local/bin/test.sh 같이 전체 경로 지정으로 실행 된 경우는 " /usr/local/bin/test.sh"와 같이 전체 경로로 설정된다. |
$1 | 1 번째의 인수가 설정된다. |
$2 | 2 번째의 인수가 설정된다. |
$3 | 세 번째 인수가 설정된다. |
$4 ~ $9 | 4 ~ 9 번째의 인수가 설정된다. |
${10} | 10 번째의 인수가 설정된다. 내용은 " $10"대신 " ${10}"같이 " {}"로 묶어야한다. 전자의 경우는 먼저 " $1"이 해석되기 때문에 원하는대로 작동되지 않는다. |
${11} ~ ${100} | 11 번째에서 10 |
[환경 변수 요약]
- 환경 변수는 시스템 전체의 동작에 대한 값이 설정되어있는 (혹은 사용자가 값을 설정) 변수. 환경 변수로 설정되어있는 변수 이름과 값은 env 명령으로 확인할 수 있다.
구분 | 설명 |
$PS1 | 프롬프트에 사용되는 문자열이 설정되어있는 환경 변수. 이 변수의 값을 변경하여 프롬프트의 표시 형식을 변경할 수있다. |
$PS2 | 여러 행에 걸친 경우 프롬프트에 사용되는 문자열이 설정되어있는 환경 변수. 환경 변수 PS1과 마찬가지로 값을 변경하여 프롬프트의 표시 형식을 변경할 수있다. |
$PATH | 명령이 저장되어있는 디렉토리의 경로가 설정되어있는 환경 변수. 경로는 ":"(콜론)으로 구분하여 여러 설정 가능. 명령 실행시에이 환경 변수 PATH에 설정되어있는 디렉토리에서 명령의 본체가 자동으로 검색된다. 즉, 환경 변수 PATH에 "/ bin"을 설정하여 명령을 "/ bin / ls"와 같이 전체 경로를 지정하지 않아도 "ls"와 같이 명령 이름 만 지정에서 실행이 가능 된다. |
$TZ | 시간대가 설정되어있는 환경 변수. 일반적으로 변경하는 일은 없다. 그러나 오래된 UNIX 환경에서 어제 날짜를 원한다면 등에 일시적으로 변경 가능하다. |
$PWD | 현재 디렉토리 경로가 설정되어있는 환경 변수. " PS1='[${PWD}]$ '"같이 환경 변수 PS1로 설정하면 프롬프트에 현재 디렉토리가 표시된다. |
$IFS | 구분자 구분 기호로 사용되는 값이 설정되어있는 환경 변수. IFS는 "Internal Field Separator"의 약어. 기본적으로 탭, 공백, 줄 바꿈이 설정되어있다. for 문 값 목록 구분과 read 명령으로로드 값의 구분 등에 사용된다. |
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'프로그래밍 언어 > Shell Script' 카테고리의 다른 글
[ShellScript] 쉘 스크립트 UTC 시간에 대한 파일을 이용한 KST 시간 변환 (0) | 2021.01.03 |
---|---|
[ShellScript] 쉘 스크립트 사용법 (배열을 사용하는 법) (1) | 2020.07.18 |
[ShellScript] 쉘 스크립트를 사용할 때 코드 작성 팁 (2) | 2020.07.17 |
[Shell Script] 쉘 스크립트 (bash) 개발자가 빠지기 쉬운 함정 (3) (0) | 2020.03.23 |
[Shell Script] 쉘 스크립트 (bash) 개발자가 빠지기 쉬운 함정 (2) (0) | 2020.03.22 |
최근댓글