์ฐ์ฐ์
ํฌ๊ฒ ๋ฌธ์์ด ์ฐ์ฐ์, ๋น๊ต ๋ฐ ๋ ผ๋ฆฌ ์ฐ์ฐ์, ๋๋ ํฐ๋ฆฌ ์ฐ์ฐ์, ํ์ผ ์ฐ์ฐ์ ๋ฐ ํ์ผ ๋น๊ต ์ฐ์ฐ์๋ก ๊ตฌ๋ถ ๊ฐ๋ฅ.
๋ฌธ์์ด ์ฐ์ฐ์
๋ณ์์ ๋ฐ์ดํฐ ํ์
์ด ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ฐ์ฐ์.
ํด๋น ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ณ์์ ์ซ์ ๋๋ , ํ์ผ๋ช
์ด๋ ๋๋ ํฐ๋ฆฌ์ ๊ฐ์ ๊ฐ์ฒดํ์ ๊ฐ์ด ์ ์ฅ๋๋ ์๊ด์์ด ๋ชจ๋ ๋ฌธ์์ด๋ก ์ทจ๊ธ.
์ฐ์ฐ์ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
-z | if [-z $๋ณ์] | ๋ฌธ์์ด ๊ธธ์ด๊ฐ 0์ด๋ฉด ์ฐธ |
-n | if [-n $๋ณ์] | ๋ฌธ์์ด ๊ธธ์ด๊ฐ 0์ด ์๋๋ฉด ์ฐธ |
๋ฌธ์์ด ๋ณ์๊ฐ NULL ๊ฐ์ธ์ง ์ฒดํฌํ ๊ฒฝ์ฐ
~$ cat if_example1.sh
#!/bin/bash
if [ -z $1 ]
then
echo True
else
echo False
fi
~$ sh if_example1.sh
True
~$ sh if_example1.sh test
False
์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋ ํ๋ผ๋ฏธํฐ ์ธ์๊ฐ ์
๋ ฅ๋์๋์ง ์ฌ๋ถ ์ฒดํฌ.
-z ์ฐ์ฐ์๋ ๋ฌธ์์ด ๊ธธ์ด๊ฐ 0์ผ ๋ True๋ฅผ ๋ฆฌํด.
๋ฌธ์์ด ๋ณ์์ ๋ฌธ์์ด์ด ์ ์ฅ๋์๋์ง ์ฒดํฌํ ๊ฒฝ์ฐ
~$ cat if_example2.sh
#!/bin/bash
if [ -n $1 ]
then
echo True
else
echo False
fi
~$ sh if_example2.sh
False
~$ sh if_example2.sh test
True
-n์ฐ์ฐ์๋ ๋ฌธ์์ด์ด 0๋ณด๋ค ํฌ๋ฉด True๋ฅผ ๋ฆฌํดํ๊ณ , ๋ฌธ์์ด ๊ธธ์ด๊ฐ 0์ด๋ฉด Flase๋ฅผ ๋ฆฌํด.
๋น๊ต ์ฐ์ฐ์
๋ ๊ฐ์ ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ ๋ ์ฌ์ฉ.
๋ณ์์ ์ ํ์ ์ซ์ํ๊ณผ ์ธ๋ฏธ์ฝ๋ก ์ด๋ ์ฝ๋ก ์ ํจ๊ป ์ฌ์ฉํ ๋ฌธ์ํ์ผ๋ก ๋๋ ์ ์์.
์ ์ ๋น๊ต ์ฐ์ฐ์
์ฐ์ฐ์ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
-eq | if [ $๋ณ์1 -eq $๋ณ์2 ] | ๋ณ์1๊ณผ ๋ณ์2์ ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฐธ, =๊ณผ ๋์ผ |
-ne | if [ $๋ณ์1 -ne $๋ณ์2 ] | ๋ณ์1๊ณผ ๋ณ์2์ ๊ฐ์ด ๋ค๋ฅด๋ฉด ์ฐธ, != ๊ณผ ๋์ผ |
-gt | if [ $๋ณ์1 -gt $๋ณ์2 ] | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ํฌ๋ฉด ์ฐธ |
-ge | if [ $๋ณ์1 -ge $๋ณ์2 ] | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ |
-lt | if [ $๋ณ์1 -lt $๋ณ์2 ] | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ์์ผ๋ฉด ์ฐธ |
-le | if [ $๋ณ์1 -le $๋ณ์2 ] | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ |
> | if (( $๋ณ์1 > $๋ณ์2 )) | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ํฌ๋ฉด ์ฐธ |
>= | if (( $๋ณ์1 >= $๋ณ์2 )) | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ |
< | if (( $๋ณ์1 < $๋ณ์2 )) | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ์์ผ๋ฉด ์ฐธ |
<= | if (( $๋ณ์1 <= $๋ณ์2 )) | ๋ณ์1์ ๊ฐ์ด ๋ณ์2์ ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ |
๊ธฐํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ (()) ์ค์ฒฉ์๊ดํธ๋ฅผ ์ฌ์ฉํด์ผ ํจ.
๋ณ์๊ฐ์ด ์๋ก ๊ฐ์์ง ์ฒดํฌํ ๋
~$ VAR1=10; VAR2=10
~$ if [ $VAR1 -eq $VAR2 ]; then echo True; else echo False; fi
True
~$ if [ $VAR1 = $VAR2 ]; then echo True; else echo False; fi
True
๋ณ์๊ฐ์ด ์๋ก ๋ค๋ฅธ์ง ์ฒดํฌํ ๋
~$ VAR1=10; VAR2=20
~$ if [ $VAR1 -ne $VAR2 ]; then echo True; else echo False; fi
True
~$ if [ $VAR1 != $VAR2 ]; then echo True; else echo False; fi
True
๋ณ์๊ฐ์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ ๋ - ๋ฌธ์ํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
~$ VAR1=10; VAR2=20
~$ if [ $VAR1 -gt $VAR2 ]; then echo True; else echo False; fi
False
~$ if [ $VAR1 -ge $VAR2 ]; then echo True; else echo False; fi
False
~$ if [ $VAR1 -lt $VAR2 ]; then echo True; else echo False; fi
True
~$ if [ $VAR1 -le $VAR2 ]; then echo True; else echo False; fi
True
๋ณ์๊ฐ์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ ๋ - ๊ธฐํธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
~$ VAR1=10; VAR2=20
~$ if (( $VAR1 > $VAR2 )); then echo True; else echo False; fi
False
~$ if (( $VAR1 >= $VAR2 )); then echo True; else echo False; fi
False
~$ if (( $VAR1 < $VAR2 )); then echo True; else echo False; fi
True
~$ if (( $VAR1 <= $VAR2 )); then echo True; else echo False; fi
True
๋ฌธ์์ด ๋น๊ต ์ฐ์ฐ์
๋ณ์์ ๊ฐ์ด ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ์๋ ์ ์๋ฅผ ๋น๊ตํ ๋์๋ ๋ค๋ฅด๊ฒ ๋ฌธ์ํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐํธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉ. โก๏ธ ๋ฌธ์์ด ๋น๊ต ์ ๋น๊ต ์ฐ์ฐ์๋ ๋ฌธ์๋ก ๋์ด ์์ผ๋ฉด, ํด๋จผ ์๋ฌ๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ๋๊ธฐ ๋๋ฌธ.
๋ฌธ์์ด ๋น๊ต์์๋ ๊ธฐํธ ์ฐ์ฐ์๋ง ์ฌ์ฉ ๊ฐ๋ฅ. ๋ฆฌ๋ค์ด๋ ์
๊ธฐํธ์ ๋์ผํ <> ๊ธฐํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ค์ฒฉ๋๊ดํธ๋ฅผ ์ฌ์ฉ.
์ฐ์ฐ์ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
= | if [ $๋ณ์1 = $๋ณ์2 ] | ๊ฐ ๋ณ์์ ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฐธ, ๋์ผํ ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ ์ฐธ |
== | if [ $๋ณ์1 == $๋ณ์2 ] | ๊ฐ ๋ณ์์ ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฐธ, ๋์ผํ ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ ์ฐธ |
!= | if [ $๋ณ์1 != $๋ณ์2 ] | ๊ฐ ๋ณ์์ ๊ฐ์ด ๋ค๋ฅด๋ฉด ์ฐธ, ์๋ก ๋ค๋ฅธ ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ ์ฐธ |
> | if [[ $๋ณ์1 > $๋ณ์2 ]] | ๋ณ์1์ ASCII ์ฝ๋๊ฐ์ด ๋ณ์2๋ณด๋ค ํฌ๋ฉด ์ฐธ |
< | if [[ $๋ณ์1 < $๋ณ์2 ]] | ๋ณ์1์ ASCII ์ฝ๋๊ฐ์ด ๋ณ์2๋ณด๋ค ์์ผ๋ฉด ์ฐธ |
๋ฌธ์์ด์ ๋น๊ตํ ๋
~$ VAR1="abc"; VAR2="def"
# VAR1๊ณผ VAR2๊ฐ ๊ฐ์ผ๋ฉด True, ๋ค๋ฅด๋ฉด False, ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ False ์ถ๋ ฅ
lucy@DESKTOP-J983OIC:~$ if [ $VAR1 = $VAR2 ]; then echo True; else echo False; fi
False
# VAR1๊ณผ VAR2๊ฐ ๊ฐ์ผ๋ฉด True, ๋ค๋ฅด๋ฉด False, ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ False ์ถ๋ ฅ
lucy@DESKTOP-J983OIC:~$ if [ $VAR1 == $VAR2 ]; then echo True; else echo False; fi
False
# VAR1๊ณผ VAR2๊ฐ ๋ค๋ฅด๋ฉด True, ๊ฐ์ผ๋ฉด False, ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ True ์ถ๋ ฅ
lucy@DESKTOP-J983OIC:~$ if [ $VAR1 != $VAR2 ]; then echo True; else echo False; fi
True
# VAR1์ด VAR2๋ณด๋ค ASCII ์ฝ๋๊ฐ์ด ํฌ๋ฉด True, ์์ผ๋ฉด False, ์๊ธฐ ๋๋ฌธ์ True ์ถ๋ ฅ
lucy@DESKTOP-J983OIC:~$ if [[ $VAR1 > $VAR2 ]]; then echo True; else echo False; fi
False
# VAR1์ด VAR2๋ณด๋ค ASCII ์ฝ๋๊ฐ์ด ์์ผ๋ฉด True, ํฌ๋ฉด False, ์๊ธฐ ๋๋ฌธ์ True ์ถ๋ ฅ
lucy@DESKTOP-J983OIC:~$ if [[ $VAR1 < $VAR2 ]]; then echo True; else echo False; fi
True
๋ ผ๋ฆฌ ์ฐ์ฐ์
AND ์ฐ์ฐ์์ OR ์ฐ์ฐ์๊ฐ ์์ผ๋ฉฐ, and์ ์ฝ์์ธ -a์ or์ ์ฝ์์ธ -o๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ.
AND์ OR์ ์๋ฏธ๋ฅผ ๊ฐ์ง &&์ ||๊ธฐํธ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ.
์ฐ์ฐ์ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
-a | if [ ์กฐ๊ฑด์1 -a ์กฐ๊ฑด์2 ] | AND ์ฐ์ฐ์ผ๋ก ์กฐ๊ฑด์1๋ ์ฐธ์ด๊ณ , ์กฐ๊ฑด์2๋ ์ฐธ์ด๋ฉด ์ฐธ, ์กฐ๊ฑด์์ ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ ์ธํ ๋ค๋ฅธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ฅผ ๋งํจ |
-o | if [ ์กฐ๊ฑด์1 -o ์กฐ๊ฑด์2 ] | OR ์ฐ์ฐ์ผ๋ก ์กฐ๊ฑด์1์ด ์ฐธ์ด๊ฑฐ๋ ์กฐ๊ฑด์2๊ฐ ์ฐธ์ด๋ฉด ์ฐธ |
&& | if [ ์กฐ๊ฑด์1 ] && [ ์กฐ๊ฑด์2 ] if [[ ์กฐ๊ฑด์1 && ์กฐ๊ฑด์2 ]] |
AND ์ฐ์ฐ์ผ๋ก && ๊ธฐํธ๋ฅผ ์ธ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ๋ณ๋ก ๋๊ดํธ []๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ค์ฒฉ ๋๊ดํธ๋ฅผ ์ฌ์ฉํด์ผ ํจ |
|| | if [ ์กฐ๊ฑด์1 ] || [ ์กฐ๊ฑด์2 ] if [[ ์กฐ๊ฑด์ || ์กฐ๊ฑด์2 ]] |
OR ์ฐ์ฐ์ผ๋ก || ๊ธฐํธ๋ฅผ ์ธ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ๋ณ๋ก ๋๊ดํธ []๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ค์ฒฉ ๋๊ดํธ๋ฅผ ์ฌ์ฉํด์ผ ํจ |
AND, OR ์ฐ์ฐ - ๋ฌธ์ํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
~$ VAR1=10; VAR2=20; VAR3=30
~$ if [ $VAR1 -lt $VAR2 -a $VAR2 -gt $VAR3 ]
> then
> echo True
> else
> echo False
> fi
False
~$ if [ $VAR1 -lt $VAR2 -o $VAR2 -gt $VAR3 ]
> then
> echo True
> else
> echo False
> fi
True
AND, OR ์ฐ์ฐ - ๊ธฐํธ ์ฐ์ฐ์์ ๋จ์ผ ๋๊ดํธ[]๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
~$ VAR1=10; VAR2=20; VAR3=30
~$ if [ $VAR1 -lt $VAR2 ] && [ $VAR2 -gt $VAR3 ]
> then
> echo True
> else
> echo False
> fi
False
~$ if [ $VAR1 -lt $VAR2 ] || [ $VAR2 -gt $VAR3 ]
> then
> echo True
> else
> echo False
> fi
True
์กฐ๊ฑด์์ ๋ฌธ์ํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ณ AND, OR ์ฐ์ฐ๋ง ๊ธฐํธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์กฐ๊ฑด์๋ณ๋ก ๋จ์ผ ๋๊ดํธ๋ฅผ ์ฌ์ฉ ํด์ผ ํจ.
AND, OR ์ฐ์ฐ - ๊ธฐํธ ์ฐ์ฐ์์ ์ค์ฒฉ ๋๊ดํธ[[]]๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
~$ VAR1=10; VAR2=20; VAR3=30
~$ if [[ $VAR1 -lt $VAR2 && $VAR2 -gt $VAR3 ]]
> then
> echo True
> else
> echo False
> fi
False
~$ if [[ $VAR1 -lt $VAR2 || $VAR2 -gt $VAR3 ]]
> then
> echo True
> else
> echo False
> fi
True
AND, OR ์ฐ์ฐ - ์กฐ๊ฑด์๋ ๊ธฐํธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
~$ VAR1=10; VAR2=20; VAR3=30
~$ if (( $VAR1 < $VAR2 )) && (( $VAR2 > $VAR3 ))
> then
> echo True
> else
> echo False
> fi
False
~$ if (( $VAR1 < $VAR2 || $VAR2 > $VAR3 ))
> then
> echo True
> else
> echo False
> fi
True
๋ชจ๋ ๊ธฐํธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๋๊ดํธ๊ฐ ์๋ ์ค์ฒฉ ์๊ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ํํ ๊ฐ๋ฅ.
๋๋ ํฐ๋ฆฌ ์ฐ์ฐ์
๋ณ์ ์ ํ์ด ๋๋ ํฐ๋ฆฌ์ผ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์.
ํน์ ๋๋ ํฐ๋ฆฌ ๋ด์ ํ์ผ ๋ชฉ๋ก ์ค์ ๋๋ ํฐ๋ฆฌ๊ฐ ์๋์ง๋ฅผ ์ฒดํฌํ ๊ฒฝ์ฐ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์.
๋๋ ํฐ๋ฆฌ ๋ด์ ๋๋ ํฐ๋ฆฌ๋ ํ์ผ์ด ์๋์ง๋ ํ์ธ ๊ฐ๋ฅ.
์ฐ์ฐ์ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
-d | if [ -d $๋ณ์ ] | ๋ณ์ ์ ํ์ด ๋๋ ํฐ๋ฆฌ์ด๋ฉด ์ฐธ |
-e | if [-e $๋ณ์ ] | ๋ณ์ ์ ํ์ด ๋๋ ํฐ๋ฆฌ์ด๊ฑฐ๋ ํ์ผ์ด๋ฉด ์ฐธ |
๋๋ ํฐ๋ฆฌ ์ฐ์ฐ
# ํ๊ฒฝ๋ณ์ HOME์ ๊ฐ์ด ๋๋ ํฐ๋ฆฌ๋ผ๋ฉด True, ์๋๋ฉด False ์ถ๋ ฅ
~$ if [ -d $HOME ]; then echo True; else echo False; fi
True
# ํ๊ฒฝ๋ณ์ HOME ๋๋ ํฐ๋ฆฌ ๋ด์ a.txt ํ์ผ์ด ์์ผ๋ฉด True, ์๋๋ฉด False ์ถ๋ ฅ
~$ if [ -e $HOME ]; then echo True; else echo False; fi
True
ํ์ผ ์ฐ์ฐ์
ํ์ผ์ด ๊ฐ์ง๊ณ ์๋ ๋ค์ํ ์์ฑ๋ค์ ์ฒดํฌํ๋ ์ฐ์ฐ์.
์ฐ์ฐ์ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
-f | if [ -f $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๋ฉด ์ฐธ |
-L | if [ -L $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๋ฉด์ ์ฌ๋ณผ๋ฆญ ๋งํฌ์ด๋ฉด ์ฐธ |
-r | if [ -r $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๊ฑฐ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉด์ ์ฝ๊ธฐ ๊ถํ์ด ์์ผ๋ฉด ์ฐธ |
-w | if [ -w $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๊ฑฐ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉด์ ์ฐ๊ธฐ ๊ถํ์ด ์์ผ๋ฉด ์ฐธ |
-x | if [ -x $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๊ฑฐ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉด์ ์คํ ๊ถํ์ด ์์ผ๋ฉด ์ฐธ |
-s | if [ -s $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๊ฑฐ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉด์ ์ฌ์ด์ฆ๊ฐ 0๋ณด๋ค ํฌ๋ฉด ์ฐธ |
-O | if [ -O $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๊ฑฐ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉด์ ์คํฌ๋ฆฝํธ ์คํ ์์ ์์ ๋์ผํ๋ฉด ์ฐธ |
-G | if [ -G $๋ณ์ ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๊ฑฐ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉด์ ์คํฌ๋ฆฝํธ ์คํ ๊ทธ๋ฃน๊ณผ ๋์ผํ๋ฉด ์ฐธ |
ํ์ผ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ ๊ฒฝ์ฐ
~$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 30 May 31 18:27 /etc/localtime -> /usr/share/zoneinfo/Asia/Seoul
~$ ls -l /usr/share/zoneinfo/Asia/Seoul
-rw-r--r-- 1 root root 617 Mar 27 02:28 /usr/share/zoneinfo/Asia/Seoul
~$ FILE=/etc/localtime
~$ if [ -f $FILE ]; then echo True; else echo False; fi
True
~$ if [ -L $FILE ]; then echo True; else echo False; fi
True
ํ์ผ ๊ถํ์ ์ฒดํฌํ ๊ฒฝ์ฐ
~$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 30 May 31 18:27 /etc/localtime -> /usr/share/zoneinfo/Asia/Seoul
~$ ls -l /usr/share/zoneinfo/Asia/Seoul
-rw-r--r-- 1 root root 617 Mar 27 02:28 /usr/share/zoneinfo/Asia/Seoul
~$ if [ -O $FILE ]; then echo True; else echo False; fi
False
~$ if [ -G $FILE ]; then echo True; else echo False; fi
False
~$ su -
~# if [ -O $FILE ]; then echo True; else echo False; fi
True
~# if [ -G $FILE ]; then echo True; else echo False; fi
True
ํ์ผ ๋น๊ต ์ฐ์ฐ์
๋ ๊ฐ์ ๋ณ์์ ์ ์๋ ํ์ผ์ ๋น๊ตํ๋ ์ฐ์ฐ์.
์ด๋ค ํ์ผ์ด ๋ ์ต๊ทผ์ ์์ฑ๋ ๊ฒ์ธ์ง, ์ด๋ค ํ์ผ์ด ๋ ์ค๋๋ ํ์ผ์ธ์ง๋ฅผ ํ์ธํ ์ ์์.
์ฐ์ฐ์ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
-nt | if [ $๋ณ์1 -nt $๋ณ์2 ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๋ฉด์, ๋ณ์1์ด ๋ณ์2๋ณด๋ค ์ต์ ํ์ผ์ด๋ฉด ์ฐธ |
-ot | if [ $๋ณ์1 -ot $๋ณ์2 ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๋ฉด์, ๋ณ์1์ด ๋ณ์2๋ณด๋ค ์ด์ ํ์ผ์ด๋ฉด ์ฐธ |
-ef | if [ $๋ณ์1 -ef $๋ณ์2 ] | ๋ณ์ ์ ํ์ด ํ์ผ์ด๋ฉด์, ๋ณ์1๊ณผ ๋ณ์2๊ฐ ๋์ผ ํ์ผ์ด๋ฉด ์ฐธ |
ํ์ผ์ ๋น๊ตํ ๋
~$ echo "AAA" > first.txt
~$ echo "BBB" > second.txt
~$ FILE1=first.txt; FILE2=second.txt
# FILE1์ด FILE2๋ณด๋ค ์ต์ ํ์ผ์ด๋ฉด True, ์๋๋ฉด False, FIlE1์ ๋จผ์ ์์ฑํ์ผ๋ฏ๋ก False ์ถ๋ ฅ
~$ if [ $FILE1 -nt $FILE2 ]; then echo True; else echo False; fi
False
# FILE1์ด FILE2๋ณด๋ค ์์ ํ์ผ์ด๋ฉด True, ์๋๋ฉด False, FIlE1์ ๋จผ์ ์์ฑํ์ผ๋ฏ๋ก True ์ถ๋ ฅ
~$ if [ $FILE1 -ot $FILE2 ]; then echo True; else echo False; fi
True
# ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก ์ฐ๊ฒฐ๋ ๋ ๊ฐ์ ํ์ผ๋ช
์ ๊ฐ๊ฐ์ ๋ณ์์ ์ ์ฅ
~$ FILE1=/etc/localtime
~$ FILE2=/usr/share/zoneinfo/Asia/Seoul
# FILE1๊ณผ FILE2๋ ๋์ผํ ํ์ผ์ด๋ฉด True, ์๋๋ฉด False, ๋์ผํ ํ์ผ์ด๋ฏ๋ก True ์ถ๋ ฅ
~$ if [ $FILE1 -ef $FILE2 ]; then echo True; else echo False; fi
True
๋ฌธ์์ด ์ฐ์ฐ์ -n ์์ ์ค์ ๋ก ์คํํ์ ๋ ํ๋ผ๋ฏธํฐ๊ฐ ์์ด๋ True๊ฐ ๋์ค๋๋ฐ ์์ธ์ด ๋ญ๊น...
'Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Linux] ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด - grep (0) | 2025.06.02 |
---|---|
[Linux] Shell Script ๊ธฐ์ด ๋ฌธ๋ฒ - ์ ๊ท ํํ์ (0) | 2025.06.01 |
[Linux] Shell Script ๊ธฐ์ด ๋ฌธ๋ฒ - ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ (1) | 2025.05.21 |
[Linux] Shell Script ๊ธฐ์ด ๋ฌธ๋ฒ - ๋ณ์ ์ฌ์ฉํ๊ธฐ(2) (1) | 2025.05.06 |
[Linux] Shell Script ๊ธฐ์ด ๋ฌธ๋ฒ - ๋ณ์ ์ฌ์ฉํ๊ธฐ(1) (0) | 2025.04.26 |