안녕하세요. 교육이입니다.^^
오늘은 리눅스의 bash 스크립트를 사용하는 방법에 대해 알아볼게요.
bash 스크립트는 명령어 창에 입력할 내용을 파일로 만들어서 파일을 실행시킴으로
작업을 수행하는 것이라고 생각할 수 있어요.
이렇게 파일로 작성해 두면, 내가 어떤 작업을 수행했는지 알기 쉽고,
나중에 비슷한 작업을 수행할 때, 편하게 이용할 수 있어요.
특히, 저는 반복작업을 할 때 유용하여 for 반복문, if 조건문을 많이 사용하고 있어요.
1. 기본 사용 방법
work.sh 파일을 만들어서 파일에 다음을 입력해주세요.
#!/bin/bash
echo "Hello, World!"
프로그래밍 언어를 처음 배울 때 한번쯤 해보는 Hello, World!를 화면에 출력하는 거예요.
리눅스 명령어 창에 echo "Hello, World!"를 입력하는 것과 같은 작업이예요.
파일 첫 줄에 #!/bin/bash는 시스템에 bash 스크립트를 사용한다는 것을 알려주는 줄이예요.
이제 명령어 창에서 파일을 실행시켜서 결과를 확인해 봐야죠!
$ bash work.sh
파일을 실행시키니 Hello, World! 가 출력되었네요.
※ 주석처리 #
#!/bin/bash
# echo "Hello, World!"
echo "Hello, Korea!" # 주석이예요~
주석 처리는 기호 #으로 두번째 줄 부터 할 수 있어요.
2. for 반복문 사용
스크립트파일의 기본 틀과 실행방법을 알았으니,
오늘의 목표인 for 반복문으로 바로 출발해봐요.
① for문 기본형태
#!/bin/bash
for i in 1 2 3 4 5
do
touch test_${i}.txt
done
for 반복문 스크립트 파일을 실행시키니 비슷한 이름의 파일들이 생성되었네요.
지금 작성한 for 반복문은 변수 i에 숫자 1, 2, 3, 4, 5를 한번씩 넣어가며,
do 와 done 사이에 있는 명령어를 실행시키는 거예요.
따라서, bash 스크립트는 python과 달리 각각의 줄 맨 앞의 띄어쓰기가 실행에 영향을 미치지 않아요.
${i}는 i가 변수 라는 것을 알려줘요. 즉, ${i} 자리에 1, 2, 3, 4, 5가 들어가는 거죠.
한단계 나아가 볼까요?
② for문 사칙연산
#!/bin/bash
for j in `seq 1 5`
do
let k=${j}+10
touch test_${k}.txt
done
for 문에 `seq 1 5`를 넣었는데, 1~5 까지 1 간격으로 정수를 입력하는 거예요.
여기서 주의할 점은 작은따옴표(``)는 키보드에서 숫자 1 왼쪽에 있는 기호예요!!
`seq 1 2 10` 을 하면, 1~10까지 2 간격으로 정수를 입력하는 것으로 1, 3, 5, 7, 9가 돼요.
또한, let을 사용하여 연산을 통해 변수 k를 생성했어요.
연산을 할 때는 반드시 let을 입력해야 돼요!! 그렇지 않으면 문자로 인식해요.
또한, 등호(=) 앞뒤로 띄어쓰기를 하면 안돼요!!
③ for문 변수를 파일, 디렉토리 명으로
#!/bin/bash
for i in `ls *.txt`
do
echo ${i}
done
변수 i에 현재 위치에 있는 *.txt파일을 입력해봤어요.
다들 다시는 것처럼 .txt로 끝나는 모든 파일 및 디렉토리를 변수 i에 대입하는거죠.
이렇게 하면 모든 파일에 같은 작업을 반복할 때 편해요.
#!/bin/bash
for i in `ls -d */`
do
echo ${i}
done
디렉토리만을 변수로 가지고 올 수도 있어요.
이 방법은 디렉토리에 대한 작업이나 디렉토리 하위 파일들의 반복 작업을 편하게 해줘요.
3. if 조건문
오늘 소개할 마지막 내용은 if 조건문 이예요.
if 조건문을 사용하여 조건에 맞는 경우, 특정한 명령을 수행하도록 만들 수 있어요.
#!/bin/bash
let j=2
for i in `seq 1 3`
do
if [ ${j} - gt ${i} ]
then
echo “Good”
elif [ ${j} -eq ${i} ]
then
echo “same”
else
echo “bad”
fi
done
if, elif, else, then으로 구성되며 elif를 여러 번 입력할 수 있어요.
if문을 닫을 때는 fi라고 표기를 해줘야 해요.
조건 식에는
A -eq B : (equal) A와 B가 같으면
A -ne B : (not equal) A와 B가 같지 않으면
A -gt B : (greater than) A가 B보다 크면
A -ge B : (greater equal) A가 B보다 크거나 같으면
A -lt B : (lesser than) A가 B보다 작으면
A -le B : (lesser equal) A가 B보다 작거나 같으면
등이 있어요.
저는 영어 단어로 외웠어요. 외우기 쉽죠?
이번에는 bash 스크립트를 활용한 for반복문과 if 조건문에 대해 알아봤어요.
오늘도 즐거운 하루 되세요~~
'리눅스' 카테고리의 다른 글
리눅스 vim(vi) 에디터 - 자주 사용하는 단축키, 명령어 모음 (1) | 2024.02.05 |
---|---|
리눅스 sed 명령어를 이용한 파일 수정 (sed command) (0) | 2024.02.02 |
리눅스 awk 명령어를 이용한 정보 출력 및 사칙연산 (awk command) (0) | 2024.02.02 |
리눅스 find 명령어를 이용한 파일 및 디렉토리 검색 (find command) (0) | 2024.02.01 |
아나콘다 특정 패키지 설치 (1) | 2024.02.01 |