vi for.sh : for.sh 생성 후 vi 에디터로 수정.
chmod 755 for.sh : for.sh 에 권한 755 부여.
./for.sh : 현재 폴더에 있는 for.sh 실행.
cat for.sh : for.sh 읽기.
ㅡㅡㅡㅡㅡfor.sh 내용 ㅡㅡㅡ
#!/bin/bash
for var in 1 2 3 4 5 #변수 var 가 1, 2, 3, 4, 5인 동안 종속된 문장 실행. #var은 그냥 변수명.
do
echo $var
done
ㅡㅡㅡㅡㅡ
위처럼 list 를 정의해주고 for문을 통해 같은 결과를 출력할 수 도 있다.
ㅡㅡㅡㅡㅡfor.sh내용ㅡㅡㅡ
#!/bin/bash
list="1 2 3 4 5" #list 정의
for var in $list
do
echo $var
done
ㅡㅡㅡㅡㅡ
touch .ccc : 숨김파일인 .ccc 생성.
vi for.sh : for.sh 을 vi 에디터로 수정.
cat for.sh : for.sh 읽기.
./for.sh : 현재 폴더안에 있는 for.sh 실행.
ㅡㅡㅡㅡㅡfor.sh 내용 ㅡㅡㅡ
#!/bin/bash
list="1 2 3 4 5" # list를 정의하긴 했으나 이 for문에서는 쓰이지 않음
for var in * .* # * : 모든 파일 , */ : 숨겨진 모든파일
do
echo $var
done
ㅡㅡㅡㅡㅡ
따라서 숨김파일과 숨겨지지않은 파일 모두의 이름이 출력된다.
ㅡㅡㅡㅡㅡfor.sh 내용ㅡㅡㅡ
#!/bin/bash
for var in {1..20..2} # 1부터 2씩 늘어나면서, 20까지
do
echo $var
done
ㅡㅡㅡㅡㅡ
ㅡㅡㅡㅡㅡfor.sh 내용ㅡㅡㅡ
#!/bin/bash
for var in {20..1..2} # 20부터 2씩 줄어들면서, 1까지
do
echo $var
done
ㅡㅡㅡㅡㅡ
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
물론 이런 간단한 출력은
seq [숫자]
명령어를 통해 출력할 수 있기도 하다.
**for문 증감식 사용법**
ㅡㅡㅡㅡㅡfor.sh내용ㅡㅡㅡ
#!/bin/bash
for ((i=10; i>=0; i--)) # i=10에서부터 한번 종속문장을 실행할 때마다 1이 감소시키고 i>=10 인 경우에만 수행.
do
echo $i
done
ㅡㅡㅡㅡㅡ
ㅡㅡㅡㅡㅡfor.sh내용ㅡㅡㅡ
#!/bin/bash
for (( ;; )) #무한루프 생성.
do
echo hello # hello 출력.
sleep 1 # 1초간 멈춤. (1초 지연)
done
ㅡㅡㅡㅡㅡ
위의 for.sh의 경우엔 break 문이 없기 때문에 ctrl +c (강제종료) 를 통해 빠져나와야 한다.
ㅡㅡㅡㅡㅡfor.sh내용ㅡㅡㅡ
#!/bin/bash
for (( ;; )) # 무한루프 생성.
do
echo program exit value plz \( hint \: 10 \* 2 \)
#조건식이 아닌 출력문장일 때는 특수기호 앞에 \를 붙여줘야한다.
read value # 입력받은 값을 value에 저장.
if [ $value == 20 ] # $value에 저장된 값이 20 인가?
then
echo program exit success!
break # 해당반복문 탈출.
else
echo wrong! again!
fi
done
ㅡㅡㅡㅡㅡ
ㅡㅡㅡㅡㅡfor.sh내용ㅡㅡㅡ
#!/bin/bash
for file in * # 현재 폴더의 모든 파일에 대해서
do
cp $file file.bak # .bak 형식의 파일을 만듬.
done
ㅡㅡㅡㅡㅡ
ㅡㅡㅡㅡㅡfor.sh 내용ㅡㅡㅡ
#!/bin/bash
for file in * # 현재 폴더에 속한 모든 것들에 대해
do
if [ -d ${file} ] # ${file} 이 디렉토리인가?
then
continue # 반복문 처음으로 돌아감
fi
#echo $file
if [ ${file} != ${file.bak} ] # ${file} 와 ${file.bak}가 이름이 같지않은가?(달라야 참값)
then
continue # 반복문 처음으로 돌아감
fi
if [ -f ${file}.bak ] # ${file}.bak 이 일반 파일인가?
then
echo exists ${file}
fi
cp $file $file.bak # 파일 복사 후 이름뒤에 .bak 을 붙임.
done
ㅡㅡㅡㅡㅡ
':: Linux 🚩 > Linux_shell_script' 카테고리의 다른 글
[리눅스] [6일차] [셸 스크립트 - etc / 나머지 셸들.] (0) | 2021.05.07 |
---|---|
[리눅스] [6일차] [셸 스크립트 - 함수] (0) | 2021.05.07 |
[리눅스] [셸 스크립트] [while 문] (0) | 2021.05.07 |
[리눅스1] [6일차] [ #02 셸스크립트 case문 ] (0) | 2021.05.03 |
[리눅스1] [6일차] [#01 셸 스크립트 - if문] (0) | 2021.05.03 |
댓글