๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Welcome.
:: Linux ๐Ÿšฉ/Linux_shell_script

[๋ฆฌ๋ˆ…์Šค1] [6์ผ์ฐจ] [#01 ์…ธ ์Šคํฌ๋ฆฝํŠธ - if๋ฌธ]

by EunBird 2021. 5. 3.

#1 ์…ธ ์Šคํฌ๋ฆฝํŠธ

๋จผ์ €,

์…ธ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ ๋‚ด์šฉ์˜ ์ฒซ์ค„์ด 

 

#!/bin/bash 

 

๋กœ ์‹œ์ž‘๋˜๋Š” ๊ฒƒ์ด ์›์น™์ด๋‹ค. 

 

 

if ๋ฌธ 

 

 

if.sh ๋‚ด์šฉ :

ใ…กใ…กใ…กใ…กใ…ก

#!/bin/bash

 

if [ -d $1 ]

then

         echo this is folder

else

         echo this is not folder

fi

ใ…กใ…กใ…กใ…กใ…ก

 

 

vi if.sh : sh ํ˜•์‹์ด๊ณ  ํŒŒ์ผ์ด๋ฆ„์ด if ์ธ ํŒŒ์ผ ์ƒ์„ฑ ํ›„, ๋‚ด์šฉ์„ vi ์—๋””ํ„ฐ๋กœ ์ž…๋ ฅํ•˜๋Š” ์ƒํƒœ๋กœ ์ด๋™.

 

cd /app/ws/script : /app/ws/script ์œ„์น˜๋กœ ์ด๋™.

 

vi if.sh : if.sh ์ด๋ผ๋Š” ์…ธ ์Šคํฌ์ž…ํŠธ ์ƒ์„ฑ ํ›„ vi ์—๋””ํ„ฐ๋กœ ์ˆ˜์ •.

 

chmod 755 if.sh : 755 ๊ถŒํ•œ ๋ถ€์—ฌ.

 

ls -al : ํ˜„์žฌ ํด๋”์—์„œ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ฆฌ์ŠคํŠธํ˜•์‹์œผ๋กœ ํ™•์ธ.

 

./if.sh : if.sh ์‹คํ–‰.

 

./if.sh 123 : ์ธ์ž 123์„ ๋„ฃ์€ ์ฑ„๋กœ if.sh ์‹คํ–‰

 

cat if.sh : if.sh ์„ ์ฝ๊ธฐ

 

 


mkdir test : test ๋ผ๋Š” ์ด๋ฆ„์˜ ํด๋”๋ฅผ ํ˜„์žฌ ์œ„์น˜์— ์ƒ์„ฑ.

 

./if.sh a : ํ˜„์žฌ ์œ„์น˜์•ˆ์— ์žˆ๋Š” if.sh ์„ a ๋ผ๋Š” ์ธ์ž๋ฅผ ๋„ฃ๊ณ  ์‹คํ–‰.

   -> ํด๋”์ด๊ธฐ ๋•Œ๋ฌธ์— "this is folder" ์ถœ๋ ฅ.

 

./if.sh test : ํ˜„์žฌ ์œ„์น˜์•ˆ์— ์žˆ๋Š” if.sh ์„ test๋ผ๋Š” ์ธ์ž๋ฅผ ๋„ฃ๊ณ  ์‹คํ–‰.

   -> ํด๋”๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— "this is not folder" ์ถœ๋ ฅ.

 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

 

**์—ฌ๊ธฐ์„œ if๋ฌธ์˜ [ ] ์•ˆ์— ์“ฐ๋Š” -d ์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

 

๋ณดํ†ต if๋ฌธ์—์„œ๋Š” ๋ถ€๋“ฑํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋ฉด ๋˜์ง€๋งŒ while๋ฌธ์—์„œ๋Š” ๋ถ€๋“ฑํ˜ธ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์˜ ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

 

ํŒŒ๋ผ๋ฏธํ„ฐ (Parameter) 

 

 ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜๋Š” $0, $1, $2…์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง

 - ์ „์ฒด ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” $*๋กœ ํ‘œํ˜„

 

 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

if.sh ์˜ ๋‚ด์šฉ.

ใ…กใ…กใ…กใ…กใ…ก

#!/bin/bash

 

if [ "$1" != "" ] && [ -e $1 ]

then

         echo this is folder

else

         echo this is not folder

fi

ใ…กใ…กใ…กใ…กใ…ก

 

ใ…กใ…กใ…กใ…กใ…ก

[ "$1" != "" ] : ํŒŒ๋ผ๋ฏธํ„ฐ1 ์ด ๊ณต๋ฐฑ์ด ๊ณต๋ฐฑ์ด ์•„๋‹Œ๊ฐ€? 

 

[ -e $1 ] : ํŒŒ๋ผ๋ฏธํ„ฐ1 ์ด ํŒŒ์ผ๋กœ ์กด์žฌํ•˜๋Š”๊ฐ€?

 

ใ…กใ…กใ…กใ…กใ…ก

 

touch a : a๋ผ๋Š” ํŒŒ์ผ ์ƒ์„ฑ.

 

ls -al : ํ˜„์žฌ ํด๋”์—์„œ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ฆฌ์ŠคํŠธํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ.

 

vi if.sh : if.sh ์„ vi์—๋””ํ„ฐ๋กœ ์ˆ˜์ •.

 

cat if.sh : if.sh ๋ฅผ ์ฝ๊ธฐ

 

./if.sh a : ํŒŒ๋ผ๋ฏธํ„ฐ1์— a๋ฅผ ๋„ฃ๊ณ  ํ˜„์žฌ์œ„์น˜์— ์žˆ๋Š” if.sh ์„ ์‹คํ–‰.

     -> [a๋Š” ๊ณต๋ฐฑ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ฐธ] && [a๋Š” ํŒŒ์ผ์ด๋ฏ€๋กœ ์ฐธ] -> echo this is folder 

 

 


 

chmod 755 a : a ํŒŒ์ผ์— 755 ๊ถŒํ•œ ๋ถ€์—ฌ.

 

chmod 2755 a : ๊ทธ๋ฃน์•„์ด๋””๋กœ ์„ค์ •.

 

# -rwxr-sr-x ๋กœ ๊ถŒํ•œ์ด ๋ณ€ํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 


 

 

touch b : b ๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ ์ƒ์„ฑ.

 

vi if.sh : if.sh ์˜ ๋‚ด์šฉ ์ˆ˜์ •.

 

./if.sh b : ํŒŒ๋ผ๋ฏธํ„ฐ1์— b๋ฅผ ๋„ฃ๊ณ  if.sh ์‹คํ–‰. 

 

./if.sh a : ํŒŒ๋ผ๋ฏธํ„ฐ1์— a๋ฅผ ๋„ฃ๊ณ  if.sh ์‹คํ–‰.

 

 

ใ…กใ…กใ…กใ…กใ…ก

if.sh ๋‚ด์šฉ

ใ…กใ…กใ…กใ…กใ…ก

#!/bin/bash

 

if [ "$1" != "" ] && [ -g $1#[$1์ด ๊ณต๋ฐฑ์ด ์•„๋‹Œ๊ฐ€?] && [$1์ด set-group-id๊ฐ€ ์„ค์ •๋˜์žˆ๋Š”๊ฐ€?]

then

         echo this is folder

else

         echo this is not folder

fi

ใ…กใ…กใ…กใ…กใ…ก

 

๋”ฐ๋ผ์„œ 

./if.sh a -> [a๋Š” ๊ณต๋ฐฑ์ด์•„๋‹ˆ๋‹ค -> ์ฐธ] && [a๋Š” set-group-id ๊ฐ€ ์„ค์ •๋˜์–ด์žˆ๋‹ค. -> ์ฐธ ] -> echo this is folder

 

./if.sh b -> [b๋Š” ๊ณต๋ฐฑ์ด ์•„๋‹ˆ๋‹ค -> ์ฐธ] && [b๋Š” set-group-id๊ฐ€ ์„ค์ •๋˜์–ด์žˆ์ง€ ์•Š๋‹ค. -> ๊ฑฐ์ง“] -> echo this not folder

 

ใ…กใ…กใ…กใ…กใ…ก

 


์ด if๋ฌธ ์…ธ์€ ๋ฌด์—‡์ผ๊นŒ?

 

ใ…กใ…กใ…กใ…กใ…ก

#!/bin/bash

 

if [ -s $1 ] && [ -f $1 ]  # [$1์˜ ํŒŒ์ผํฌ๊ธฐ๊ฐ€ 0์ด ์•„๋‹Œ๊ฐ€?] && [$1์ด ์ผ๋ฐ˜ ํŒŒ์ผ์ธ๊ฐ€?]

then

         echo $1

else

         echo "wrong"

fi

ใ…กใ…กใ…กใ…กใ…ก

 


์ด if๋ฌธ ์…ธ์€ ๋ฌด์—‡์ผ๊นŒ?

 

ใ…กใ…กใ…กใ…กใ…ก

#!/bin/bash

 

echo "plz input file name"  # ๋ฌธ์žฅ ์ถœ๋ ฅ

 

read fname  # ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ fname ์— ์ €์žฅ.

if [ $fname -s ] && [ -f $fname# [$fname์˜ ํŒŒ์ผํฌ๊ธฐ๊ฐ€ 0์ด ์•„๋‹Œ๊ฐ€?] && [$fname์ด ์ผ๋ฐ˜ ํŒŒ์ผ์ธ๊ฐ€?]

then

         echo $fname

else 

         echo "wrong"

fi

ใ…กใ…กใ…กใ…กใ…ก

 

 

 

 

 

 

 

 

728x90

๋Œ“๊ธ€