#!/bin/bash
# 떠돌이별 목록.
for planet in Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Pluto
do
echo $planet
done
echo
# 따옴표로 묶인 전체 '목록'은 한 개의 변수를 만들어 냅니다.
for planet in "Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Pluto"
do
echo $planet
done
exit 0
#!/bin/bash
# 떠돌이별 재검토.
# 각 떠돌이별의 이름과 해(sun)까지 거리를 한 쌍으로 묶음.
for planet in "Mercury 36" "Venus 67" "Earth 93" "Mars 142" "Jupiter 483"
do
set -- $planet # "planet" 변수를 파싱해서 위치 매개변수로 세팅.
# "--" 를 쓰면 $planet 이 널이거나 대쉬 문자로 시작하는 등의 까다로운 상황을 처리해 줍니다.
# 원래의 위치 매개변수는 덮어써지기 때문에 다른 곳에 저장해 놓아야 할지도 모릅니다.
# 배열을 써서 해 볼 수 있겠네요.
# original_params=("$@")
echo "$1 해까지 거리 $2,000,000 마일"
done
# (S.C. 가 확실한 설명을 더 해 줬습니다.)
exit 0
~
---------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
# wh-loopc.sh: "while" 루프에서 10까지 세기.
LIMIT=10
a=1
while [ "$a" -le $LIMIT ]
do
echo -n "$a "
let "a+=1"
done # 아직은 별로 놀랄게 없네요.
echo; echo
# +=================================================================+
# 이제 똑같은 것을 C 형태의 문법으로 해 봅시다.
((a = 1)) # a=1
# 이중 소괄호에서는 변수를 세팅할 때 C 처럼 빈 칸을 넣어도 됩니다.
while (( a <= LIMIT )) # 이중 소괄호, 변수 앞에 "$"가 없네요.
do
echo -n "$a "
((a += 1)) # let "a+=1"
# 역시 되는군요.
# 이중 소괄호를 쓰면 C 문법처럼 변수를 증가시킬 수 있군요.
done
echo
# 이제 C 프로그래머도 Bash 를 쓸 때 편안하게 쓸 수 있겠습니다.
exit 0
until
until은 루프 최상단에서 특정 조건을 확인하면서 그 조건이 거짓일 동안 루프를 계속 돌도록 해 줍니다(while과 반대).
until [condition-is-true]
do
command...
done
주의할 점은 until이 몇몇 프로그래밍 언어에서 비슷한 형태와는 다르게 루프 처음에서 끝내는 조건을 검사한다는 것 입니다.
for/in 경우처럼 do를 조건문과 한 줄에 같이 쓰려면 세미콜론을 적어줘야 합니다.
until [condition-is-true] ; do
예 10-17. until 루프
#!/bin/bash
until [ "$var1" = end ] # 테스트 조건이 루프 최상단에 들어갑니다.
do
echo "변수값을 넣으세요 #1 "
echo "(끝내려면 end)"
read var1
echo "변수 #1 = $var1"
done
exit 0
'Linux' 카테고리의 다른 글
톰캣 중복 구동현상 (connection refused:111) 오류? (0) | 2022.04.19 |
---|---|
[Nginx] 엔진엑스 기본 환경 설정 (0) | 2022.03.24 |
[쉘스크립트]$((...)) (0) | 2022.02.24 |
[쉘 스크립트] 위치 매개변수 (0) | 2022.02.23 |
[쉘스크립트] 변수 치환 (0) | 2022.02.23 |