Linux shell 스크립트 실습 예제 1
코딩과 교육/전문코딩 2022. 8. 30. 11:00실습1. 다음 지시사항대로 셸 스크립트를 만들어 보세요.
-1. 홈디렉토리 아래에 A0000 부터 A9999 까지 디렉토리 생성
- 스크립트 이름 : mkd_10k.sh
- ubuntu 사용자의 경우
- /home/ubuntu/A0000, /home/ubuntu/A0001, /home/ubuntu/A0002, ...
for 를 사용하는 방법이 몇가지 있으며 그 중 우분투 18.04 에서 bash 사용시 seq 를 이용하는 것이 가능하다. 아래코드에서 if 조건을 반대로 (-lt 대신 -gt 를 사용) 하면 조금 더 효율적으로 코딩이 가능하다.
#!/bin/bash
cd $HOME
names=$(seq 0 9999)
for name in $names
do
if [ $name -lt 10 ]
then
fname=A000$name
else
if [ $name -lt 100 ]
then
fname=A00$name
else
if [ $name -lt 1000 ]
then
fname=A0$name
else
fname=A$name
fi
fi
fi
mkdir $fname
done
-2. A0000 부터 A9999 까지의 모든 디렉토리에 readme.txt 파일을 만들고 다음 내용을 2줄로 넣습니다.
- 스크립트 이름 : mkd_readme.sh
- 디렉토리 PATH
- 디렉토리명 + "에 오신것을 환영합니다."
- cat /home/ubuntu/A0000/readme.txt 의 결과는 다음과 같아야 합니다.
/home/ubuntu/A0000
A0000에 오신것을 환영합니다.
위 1번 결과에서 mkdir $fname 부분만 다음과 같이 수정한다.
cd $HOME"/"$fname
echo $PWD > readme.txt
echo $fname"에 오신것을 환영합니다." >> readme.txt
추가수정내용
#!/bin/bash
cd $HOME
f_names=$(seq 0 9999)
for f_name in $f_names
do
if [ $f_name -gt 999 ]; then name=A$f_name
else if [ $f_name -gt 99 ]; then name=A0$f_name
else if [ $f_name -gt 9 ]; then name=A00$f_name
else if [ $f_name -gt 0 ]; then name=A000$f_name
fi
fi
fi
fi
# STEP 1 - make directory
#mkdir $name
#echo $name
# STEP 2 - make file
cd $HOME"/"$name
echo $PWD > readme.txt
echo "$name에 오신것을 환영합니다." >> readme.txt
done