Bash 스크립팅은 Linux 컴퓨터를 프로그래밍하는 가장 인기 있고 접근 가능한 방법 중 하나입니다. 이러한 간단한 스크립트 예제는 프로세스를 이해하는 데 도움이 되며 Bash 프로그래밍의 기본 사항을 소개합니다.
목차
1. Bash에서 Hello World를 인쇄하는 방법
Hello World 예제는 모든 프로그래밍 언어를 배울 수 있는 좋은 방법이며 Bash도 예외는 아닙니다.
Bash를 사용하여 “Hello World”를 인쇄하는 방법은 다음과 같습니다.
#!/bin/bash
Shebang 명령(#!/bin/bash)은 쉘이 스크립트 실행 방법을 결정하는 데 사용하므로 필수적입니다. 이 경우 Bash 인터프리터를 사용합니다.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. 입력을 읽어 디렉토리 생성
일반적으로 명령줄에서 실행할 수 있는 모든 프로그램을 스크립트에서 실행할 수 있습니다. 예를 들어, mkdir 명령을 사용하여 스크립트에서 새 디렉터리를 만들 수 있습니다.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. 명령줄 인수를 사용하여 디렉터리 생성
입력을 대화형으로 읽는 대신 대부분의 Linux 명령은 인수를 지원합니다. 프로그램을 실행할 때 인수를 제공하여 프로그램의 동작을 제어할 수 있습니다.
스크립트 내에서 $1을 사용하여 첫 번째 인수의 값이 포함된 특수 변수를 참조할 수 있습니다. $2는 두 번째 인수를 참조하는 식입니다.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
인수를 전혀 제공하지 않고 스크립트를 실행하면 어떻게 되는지 궁금할 것입니다. 시도해보고 확인하십시오. “usage: mkdir”을 시작하는 오류 메시지가 표시됩니다.
명령줄 인수가 없으면 $1 값은 비어 있습니다. 스크립트가 mkdir을 호출하면 인수가 전달되지 않으며 mkdir 명령은 해당 오류를 반환합니다. 이를 방지하려면 상태를 직접 확인하고 보다 친숙한 오류를 제시할 수 있습니다.
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
이 새 버전의 스크립트를 실행할 때 인수 포함을 잊어버린 경우 메시지가 표시됩니다.
4. Bash 기능을 사용하여 파일 삭제
동일한 코드를 반복하고 있다면 함수로 래핑하는 것을 고려해 보세요. 그런 다음 필요할 때마다 해당 함수를 호출할 수 있습니다.
다음은 특정 파일을 삭제하는 함수의 예입니다.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
그런 다음 함수를 호출하고 삭제할 파일 이름을 전달할 수 있습니다.
del_file test.txt
함수를 호출하면 특수 $? 값은 실행한 마지막 명령의 종료 상태입니다. 종료 상태는 오류 확인에 유용합니다. 이 예에서는 rm 명령이 성공했는지 테스트할 수 있습니다.
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. 산술 계산을 위한 기본 계산기 만들기
이 마지막 예는 매우 기본적인 계산기를 보여줍니다. 이를 실행하면 두 개의 값을 입력한 다음 이를 수행할 산술 연산을 선택합니다.
calc.sh의 코드는 다음과 같습니다.
#!/bin/bash
echo "Enter first number: "
read aecho "Enter second number: "
read b
echo "Enter Arithmetic Operation Choice :"
echo "1. Addition"
echo "2. Subtraction"
echo "3. Multiplication"
echo "4. Division"
read choice
case $choice in
1)
result=`echo $a + $b | bc`
;;2)
result=`echo $a - $b | bc`
;;3)
result=`echo $a \* $b | bc`
;;4)
result=`echo "scale=2; $a / $b" | bc`
;;
esacecho "Result: $result"
다른 언어의 스위치 문에 해당하는 Bash의 case … esac 사용에 유의하세요. 이를 통해 여러 고정 값에 대해 값(이 경우 선택 변수)을 테스트하고 관련 코드를 실행할 수 있습니다.
이 스크립트는 bc 명령을 사용하여 각 계산을 수행합니다.