여름아 가지마! 갈때 가더라도 셸스크립트는 정리하고 가자!
"본격적인 파티전에 기본문법 cheat sheet 정리하기"
# substring
${FOO:0:3} #=> substring(position, length) 왼쪽에서 0번째부터 3글자
${FOO:(-3):3} #=> 오른쪽부터 substring
#length
${#FOO} #=> $FOO의 길이
# 대소문자로 변환하기
STR="HELLO WORLD!"
echo ${STR,} #=> "hELLO WORLD!" 맨 첫번째 문자만 소문자로
echo ${STR,,} #=> "hello world!" 전부 소문자로
STR="hello world!"
echo ${STR^} #=> "Hello world!" 맨 첫번째 문자만 대문자로
echo $P{STR^^} #=> "HELLO WORLD" 전부 대문자로
# Default Value
ECHO ${FOO:-defval} #=> defval FOO가 선언되지 않거나 혹은 null인경우 defval로 출력
ECHO ${FOO:=defval} #=> FOO가 선언되지 않거나 null인경우 FOO를 defval에 set한다(?)
ECHO ${FOO:+defval} #=> $FOO가 선언되어있거나 널이아닌경우 defval 출력
ECHO ${FOO:?message} #=> $FOO가 선언되지 않은경우나 null인경우 message를 출력하고 종료
#for loop(for-in)
for i in /etc/rc.*; do
echo $i #=> in의 결과를 i로 하나씩 받아온다.
done
#for loop (default)
for ((i = 0 ; i < 100 i ++)); do
echo $i
done
#범위
for i in {1..5}; do
echo "Welcome $i"
done
#5부터 50까지 5씩증가..?
for i in {5..50..5}; do
echo "Welcome $i"
done
# 무한루프
while true; do
...
done
# function 선언
function myfunc() { #=> function은 생략 가능
echo "hello $1"
}
# 함수 호출
myfunc "sohee!"
# 함수 결과 반환
myfunc() {
return 1
}
if myfunc; then
echo "Success"
else
echo "failure"
fi
# 파라미터어어
myfunc() {
echo $# #=> 3 파라미터를 몇개 넘겼을까요오
echo $* #=> 1 2 3 모든 인수를 출력합니다
echo $@ #=> 1 2 3 모든 인수를 출력한다 (위에랑 뭔차이지..?)
echo "$1 $2" #=> 1 2 첫번째 두번째 인수를 출력한다
echo $_ #=> 이전명령의 마지막 인수를 출력한다. 독특하다.
}
myfunc 1 2 3
댓글