본문 바로가기
공부,일/셸 스크립트

20210622셀스크립트 실습

by fromnothing1 2021. 6. 22.

string 관련 실습 

 
  3 #!/bin/sh
  4 PATH_VAL="/home/bnk/code/home/bnk/code/bnk/code"
  5 echo ${PATH_VAL}
  6 echo ${PATH_VAL%/bnk*}
  7 echo ${PATH_VAL#/*bnk}
  8 echo ${PATH_VAL%%/bnk*}
  9 echo ${PATH_VAL##/*bnk}
 10
~

명령행의 인자 

  1 #!/bin/bash
  2
  3 echo '$* : '$*
  4 echo '$# : '$#
  5 echo '&@ : '$@
  6 echo "   :  $1 $2 $3"
  7

for 문

  1 #!/bin/sh
  2
  3 for VAL in 0 1 2
  4 do
  5     echo "VAL = ${VAL}"
  6 done

  1 #!/bin/bash
  2
  3 for ((i=0 ; i<10 ; i++))
  4 do
  5     echo $i
  6 done

구구단 만들기 

숫자 계산하는 3가지 방법

#expr 버전

for (($COUNT; COUNT<10; COUNT++))
do
    echo "$DAN x $COUNT = " expr $DAN \* $COUNT
done

#bc 버전
 for (($COUNT; COUNT<10; COUNT++))
 do
     echo "$DAN x $COUNT =  " echo "$DAN*$COUNT"|bc
 done

#바로 계산하는 버전

 for (($COUNT; COUNT<10; COUNT++))
 do
    echo "$dan * $count = $((dan*$count))"
 done
  1 #!/bin/bash
  2 dan=5
  3
  4 for ((i=1 ; i<10 ; i++))
  5 do
  6     echo "by num1 $dan * $i =" `echo "$dan*$i" | bc`
  7 done

5단 출력

 

배열 array

  1 #!/bin/bash
  2
  3
  4 array=(5 3 7 2 9)
  5
  6 echo ${array[0]}
  7 echo ${array[1]}
  8 echo ${array[2]}
  9 echo ${array[3]}
 10 echo ${array[4]}
 11

array for 문안에서 사용하는  방법

  1 #!/bin/bash
  2
  3
  4 array=(5 apple  7 3.14 9)
  5
  6 for item in ${array[@]}
  7 do
  8     echo $item
  9 done
 10
 11 echo ${array[@]}

 

1 #!/bin/bash
  2
  3 array=(5 3 7 2 9)
  4
  5 echo ${array[@]}
  6
  7 array[0]=7
  8
 10 echo ${array[@]}
 11
 12

@ vs * 

  1 #!/bin/bash
  2
  3 array=(5 3 7 2 9)
  4
  5 for item  in "${array[@]}"; do
  6     echo '@  ' $item
  7 done
  8 echo =========================
  9
 10 for item in "${array[*]}"; do
 11     echo '* '  $item
 12 done
 13

 

* 은 배열을 한 덩어리로 인식

@ 는 각각을 지정 

"" 로 안감싸면 똑같이 동작한다. 

 

date 

  1 #!/bin/bash
  2
  3 array=(`date`)
  4
  5 echo ${array[0]}
  6 echo ${array[1]}
  7 echo ${array[2]}
  8 echo ${array[3]}

 

 

until while 반대

 

exit

 

select in 

 

function

함수를 정의하고 사용할 수 있다.

  1 #!/bin/bash
  2
  3 function RetValue
  4 {
  5     echo "RetValue"
  6
  7     return 100
  8 }
  9
 10 RetValue
 11 echo "함수 반환값 [${?}]"

eval

`` 과 거의 비슷하지만 |(파이프) 등 같이 쓰는 기능이 동작 하지 않을 때 eval 사용하면 동작 한다.

  1 #!/bin/bash
  2
  3 command="ls -al | more"
  4
  5 echo "======================="
  6 echo ${command}
  7 echo "======================="
  8 eval ${command}
  9 #echo `ls -al | more`

'공부,일 > 셸 스크립트' 카테고리의 다른 글

달팽이 행렬 출력하기  (0) 2021.06.22
쉘스크립트 실습 20210621  (0) 2021.06.21
20210618  (0) 2021.06.18
shell scrip 권한 읽고 수정하는 방법  (0) 2021.06.18
winscp  (0) 2021.06.18

댓글