빠른 링크
Bash 스크립팅은 널리 퍼져 있고 사용자 친화적인 수단입니다.개인이 Linux 시스템을 프로그래밍할 수 있는 보편적이고 사용자 친화적인 수단입니다. 이러한 기본 스크립트 샘플을 제공함으로써 기본 메커니즘을 조명하고 Bash 프로그래밍의 기본을 소개합니다.
Bash에서 Hello World를 인쇄하는 방법
실제로 유비쿼터스 “Hello World” 프로그램은 Bash를 비롯한 다양한 프로그래밍 언어의 기본을 익히는 데 훌륭한 출발점이 됩니다.
Bash 프로그래밍 언어를 사용하여 “Hello World”라는 텍스트를 생성하려면 다음 단계를 따르세요:
프로세스를 시작하려면 메모장 또는 Visual Studio Code와 같은 적절한 애플리케이션을 실행하여 다음 줄의 소스 코드가 포함된 새 문서를 만듭니다.
“
#!/bin/bash
“.
셸이 스크립트를 실행할 때 어떤 인터프리터를 사용할지 결정하는 데 중요한 지표 역할을 하므로 Shebang 지시문(#!/bin/bash)을 활용하는 것이 가장 중요합니다. 이 특정 사례에서는 당면한 작업을 처리하기 위해 Bash 인터프리터가 호출됩니다.
프로그램에서 “#” 문자로 시작하는 줄은 주석으로 간주되며 일반적으로 코드에 대한 추가 정보나 설명을 제공하는 데 사용됩니다. 그러나 주석의 일종인 쉘뱅 줄은 고유한 용도로 사용되며 다른 유형의 주석으로 대체할 수 없다는 점에 유의하세요. 코드에 명확성을 더하려면 2번 줄에 제안된 것과 같이 스크립트 전체에 원하는 주석을 자유롭게 포함하세요.
지정된 값과 함께 echo 명령을 사용하여 해당 값을 표준 출력에 인쇄할 수 있습니다. 이렇게 하려면 코드의 3번째 줄에 앞서 언급한 명령어를 삽입하세요.
스크립트를 저장할 때는 널리 인정되고 편리하게 따르는 규칙인 .sh 파일 확장자를 사용하는 것이 좋습니다. 이렇게 하면 디렉토리 또는 파일 시스템 내에서 스크립트를 쉽게 식별할 수 있으므로 사용자가 원하는 파일을 보다 효율적으로 찾아 실행할 수 있습니다.
chmod +x [스크립트\_이름]. 이 명령을 실행하면 스크립트를 지정된 셸 환경 내에서 프로그램으로 실행할 수 있습니다.
./hello_world.sh
⭐ 스크립트가 실행되면 터미널에 “Hello World”라는 텍스트가 인쇄됩니다:
입력을 읽어 디렉터리 만들기
스크립트는 일반적으로 명령줄 인터페이스에 입력되는 모든 명령을 실행할 수 있는 기능을 제공합니다. 예를 들어, 스크립트 내에서 mkdir 명령을 사용하여 새 디렉터리를 만들 수 있습니다.
열정과 변함없는 헌신으로 시공간을 초월하여 인간의 감정과 신의 개입을 엮어낸 창작 여정의 새로운 장을 여러분께 선보입니다. 자아 발견, 사랑, 상실, 구원의 오디세이를 통해 인류의 가장 위대한 미스터리의 중심을 깊이 파고드는 여정을 시작하세요. 영혼이 영감의 불꽃을 피우고 내면의 평화와 영원한 조화를 향한 길을 비추는 열정과 목적의 영역을 탐험해 봅시다. 독자 여러분, 인류의 가장 심오한 질문에 대한 답을 찾기 위해 광활한 지식의 세계를 가로지르며 삶의 경이로움과 지혜에 대한 또 다른 매혹적인 이야기에 동참해 주세요. 함께
이런 식으로 에코 기능을 활용하여 디렉토리 경로를 친절하게 알려주세요:
셸 환경에 내재된 `read` 명령은 단독 인수를 사용하여 저장된 데이터의 변수 이름을 지정하여 사용자 입력을 검색하는 데 활용할 수 있습니다. 이 경우 앞서 언급한 문자 시퀀스, 즉 “
read newdir
“가 지정된 변수 식별자 역할을 합니다.
변수가 보유한 값을 활용하려면 명령어 앞에 변수 식별자 앞에 달러 기호($)를 붙입니다. 이렇게 하면 입력 변수의 내용을 mkdir 함수에 인수로 제공하여 새 폴더를 만들 수 있습니다.
⭐ 이 스크립트를 실행하면 입력을 요청하는 메시지가 표시됩니다. 유효한 디렉터리 이름을 입력하면 스크립트가 현재 디렉터리에 해당 디렉터리를 생성하는 것을 볼 수 있습니다:
명령줄 인수를 사용하여 디렉토리 만들기
많은 Linux 명령은 실행 중에 수동으로 입력을 입력하는 대신 프로그램을 실행할 때 제공할 수 있는 인수를 사용하여 기능을 조작할 수 있습니다.
스크립트 내에서 “$1” 구문을 사용하여 초기 인수의 본질을 포괄하는 고유한 변수를 암시할 수 있습니다. 마찬가지로 “$2″를 후속 인수에 대한 참조로 사용하는 등의 방식으로 사용할 수 있습니다.
`mkdir` 명령을 사용하고 미리 정의된 변수 `$1`을 통합하여 현재 작업 디렉터리 내에 폴더를 생성합니다.
지정된 디렉터리 이름(예: “
./arg_dir.sh Test
“)을 입력 파라미터로 제공하여 제공된 스크립트를 실행하세요.
입력을 제공하지 않고 스크립트를 실행할 때 “mkdir”로 시작하는 사용 오류가 발생할 수 있습니다.
명령줄 인수가 없는 경우 변수 $1의 값은 빈 결과를 산출합니다. 따라서 스크립트 내에서 “mkdir” 명령을 실행할 때 인수가 전달되지 않아 해당 명령에서 오류가 반환됩니다. 이 문제를 우회하기 위한 가능한 해결책은 앞서 언급한 조건을 내부적으로 확인한 후 보다 우호적인 오류 메시지를 응답으로 제공하는 것입니다.
#
#!/bin/bash
.
`mkdir`을 호출하기 전에 Bash 프로그래밍 언어에서 제공하는 조건식을 사용하여 초기 매개변수에 입력이 없는지(즉, 인수가 제공되지 않았는지) 확인하는 것이 좋습니다. 이를 통해 이러한 조건에 따라 명령을 실행할 수 있습니다.
제공된 초기 입력에 데이터가 포함되어 있지 않은 경우 오류 메시지를 표시하고 그에 따라 프로그램 또는 스크립트의 실행을 종료하는 것이 현명합니다.
기존의 “if” 키워드의 반대인 독특하고 색다른 “fi” 키워드는 Bash 프로그래밍 언어 내에서 if 문의 결론을 나타내는 마커 역할을 합니다.
이제 인수가 제공된 경우에 대해 코드가 일반적인 작업을 진행합니다.
업데이트된 구현은 이제 실행 중에 필요한 인수가 생략된 경우 알림을 표시하여 스크립트의 작업을 진행하기 전에 필요한 모든 입력 매개변수가 제공되었는지 확인합니다.
Bash 함수를 사용하여 파일 삭제
동일한 코드를 여러 번 반복하면 중복이 발생하고 프로젝트의 여러 섹션에서 일관성을 유지하기가 더 어려워질 수 있습니다. 이 문제를 완화하기 위한 효과적인 해결책 중 하나는 반복되는 코드를 함수 내에 캡슐화하여 필요에 따라 호출할 수 있도록 하는 것입니다. 이 접근 방식은 프로세스를 간소화할 뿐만 아니라 모듈성과 확장성을 촉진하여 향후 업데이트 및 수정이 더 쉬워집니다.
특정 파일을 삭제하는 함수의 예시입니다.
해시뱅 또는 파운드뱅이라고도 하는 셰뱅은 유닉스 및 유닉스 계열 운영 체제에서 스크립트 파일의 시작 부분에 있는 문자 시퀀스로, 스크립트를 실행하는 데 사용할 인터프리터를 지정합니다. 일반적으로 두 개의 문자 “!”와 원하는 인터프리터를 나타내는 실행 파일 경로로 구성됩니다. 이 경우 Shebang은 스크립트가 Python 3+를 사용하여 실행되어야 함을 나타냅니다.
⭐ 이름 뒤에 빈 괄호와 명령을 중괄호 안에 적어 함수를 정의합니다:
del_file() {
echo "deleting $1"
rm $1
}
그런 다음 함수를 호출하고 삭제할 파일 이름을 전달할 수 있습니다:
del_file test.txt
함수를 호출하면 특수 “$?” 변수가 해당 함수가 실행하는 최종 명령의 종료 상태로 설정됩니다. 이 종료 상태는 제공된 그림에서 볼 수 있듯이 “rm” 명령이 성공했는지 여부를 확인하는 등 오류 확인 및 유효성 검사를 위한 효과적인 수단으로 사용됩니다.
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
산술 연산을 위한 기본 계산기 만들기
이 그림은 사용자가 두 개의 숫자 값을 입력하고 실행 시 해당 입력값에 대해 수행할 산술 연산을 선택할 수 있는 기초적인 계산기를 보여 줍니다.
제공된 코드는 다음과 같으며 “calc.sh”라는 스크립트와 관련이 있습니다:
#!/bin/bash
# Take operands as input
echo "Enter first number: "
read a
echo "Enter second number: "
read b
# Input type of operation
echo "Enter Arithmetic Operation Choice :"
echo "Addition"
echo "Subtraction"
echo "Multiplication"
echo "Division"
read choice
# calculator operations
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`
;;
esac
echo "Result: $result"
Bash는 다양한 프로그래밍 언어에서 볼 수 있는 기존 스위치 문을 대체하는 “esac” 키워드를 활용하여 조건부 분기를 처리하는 자체 메커니즘을 제공합니다. 이 구조를 사용하면 특정 값을 미리 결정된 여러 값과 비교하여 평가한 후 그 결과에 따라 해당 코드 블록을 실행할 수 있습니다.
본 스크립트는 필요한 모든 연산을 수행하기 위해 bc 명령을 사용합니다.