이세개발
article thumbnail

Bash

Bash

Bash script

실습과제

다음 요구 사항에 따라 Bash 스크립트를 작성합니다.
25개 빈(0 KB) 파일을 생성합니다. (힌트: touch 명령
)
파일 이름은 {yourName}{number}, {yourName}{number+1}, {yourName}{number+2} 등과 같아야 합니다.
실행할 때마다 이미 존재하는 마지막 또는 최대 수로 시작하여 숫자가 늘어나는 25개 파일로 이루어진 다음 배치를 생성하도록 스크립트를 설계합니다.
이러한 숫자는 하드코딩하지 마십시오. 자동화를 사용하여 이를 생성해야 합니다.
스크립트를 테스트합니다. 긴 디렉터리 목록과 해당 콘텐츠를 표시하여 스크립트로 예상 파일이 생성되었는지 검증합니다.

풀이

#!/bin/sh

MYNAME="hankyo"

echo "설정하신 당신의 이름은 "$MYNAME"입니다."

MYNAMELEN=${#MYNAME}

echo "당신의 이름의 길이는 "$MYNAMELEN"입니다."

## 앞으로 나올 숫자들에서 가장 큰 숫자를 담아놓는 변수
MAXNUM=0

## 현재 경로 안에 내 이름으로 시작하는 파일 찾음
ARR=(`find . -name ${MYNAME}"*"`)

echo ${ARR[@]}

for i in ${ARR[@]}
do
  echo "이름으로 시작하는 파일 찾았다 "$i

  ## 이름을 뺀 나머지 문자를 변수 TEMP 에 넣는다
  ## +2 이유 find로 찾았을 때 파일명앞에 경로인 ./ 가 붙는다.
  TEMP=${i:${MYNAMELEN}+2}
  echo "이름을 뺀 나머지 문자: "$TEMP

  ## 이름빼고 숫자만 있는지지 확인하는 if문
  echo "나머지 문자가 숫자로만 이루어져 있는가?"
  if echo $TEMP | grep -qe "^[-\?[0-9]\+\.\?[0-9]*$"
  then
    echo "숫자로 이루어져 있네요"

    ## 가장 큰 숫자를 찾는 if문 TEMP변수가 MAXNUM보다 큰가?
    if [ $MAXNUM -lt $TEMP ]
    then
      echo "큰 숫자를 찾았습니다."
      MAXNUM=$TEMP
      echo " "
    fi

  else
    echo "숫자가 아닙니다."
    echo " "
  fi

done

echo "가장 큰 숫자는"$MAXNUM

echo "가장 큰 숫자보다 1큰 숫자부터 시작하여 25개의 파일을 만들겠습니다."

## 1큰 숫자부터 25개를 반복하는 for 반복문
for ((i=$MAXNUM+1; i<$MAXNUM+26; i++))
do
  echo $MYNAME$i"파일을 만듭니다."
  touch $MYNAME$i
done
profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!