쉘은 운영 체제의 인터페이스입니다. 사용자로부터 명령을 받아 이를 운영 체제에 해석합니다. 여러 명령을 함께 실행하려면 쉘 스크립트를 작성하면 됩니다. 백업 수행과 같은 작업을 정기적으로 수행해야 하는 경우 셸 스크립트는 매우 유용합니다. 해당 명령을 나열하고 단일 스크립트로 모두 실행할 수 있습니다. 쉘 스크립트를 작성하고 Linux에서 실행하는 방법을 살펴보겠습니다.
쉘 스크립트 생성
Linux 시스템에 로그인하고 터미널을 열고 쉘 스크립트를 저장할 폴더로 이동하십시오. 쉘 스크립트는 확장자 .sh로 끝납니다. 첫 번째 쉘 스크립트를 작성해 보겠습니다. 입력하세요
touch script.sh>
이제 이 스크립트 파일은 기본적으로 실행 가능하지 않으므로 이 파일에 실행 권한을 부여해야 합니다. 입력하세요
chmod +x script.sh>
이제 이 쉘 스크립트에 몇 가지 명령을 추가하겠습니다. 원하는 텍스트 편집기(명령줄 기반 또는 GUI 기반)를 사용하여 이 셸 스크립트를 열고 몇 가지 명령을 추가하세요. 우리는 나노를 사용할 것입니다. 입력하세요
nano script.sh>
이 쉘 스크립트를 테스트하려면 다음 명령을 추가하십시오.
echo This is my first shell script touch testfile ls echo End of my shell script>
변경 사항을 저장하고 다음을 입력하여 쉘 스크립트를 실행하십시오.
./script.sh>

위 단계의 스크린샷
보시다시피 지정된 모든 명령이 실행되었습니다.
쉘 스크립트의 주석
쉘 스크립트에서 #으로 시작하는 모든 라인은 주석으로 처리되며 실행 중에 쉘에 의해 무시됩니다. 단, 이 글의 뒷부분에서 보게 될 shebang 라인은 예외입니다. 예를 살펴보겠습니다. 다음 내용으로 쉘 스크립트가 생성됩니다.
# This is a comment echo Testing comments in shell script>

쉘 스크립트의 주석
CSS를 사용하여 테두리
보시다시피 댓글이 무시됩니다.
쉘 스크립트의 변수
예, 셸 스크립트는 변수 사용을 지원하므로 변수 선언 중에 변수 유형을 정의할 필요가 없습니다. 변수에는 두 가지 유형이 있습니다.
- 시스템 정의 변수
- 사용자 정의 변수.
환경 변수라고도 하는 시스템 정의 변수는 일반적으로 대문자로 표시됩니다. printenv 명령을 사용하면 현재 환경 변수를 모두 볼 수 있습니다. 사용자 정의 변수는 사용자가 설정하며 스크립트 실행 중에만 존재합니다. 간단히 이름을 입력하고 = 기호로 값을 할당하여 변수를 정의할 수 있으며, 변수 이름 앞에 $를 추가하여 변수에 액세스할 수 있습니다. 다음 예제 스크립트에서는 변수를 보여줍니다.
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

쉘 스크립트의 변수
쉘 스크립트 인터프리터 정의
Linux에는 bourne shell(sh), Korn Shell(ksh), GNU Bourne-Again Shell(bash) 등 다양한 쉘을 사용할 수 있습니다. sh 쉘용으로 작성된 스크립트를 쉘 스크립트라고 하며 ksh 쉘과 bash 쉘 모두에서 해석될 수 있습니다. ksh와 Bash는 원래 sh 쉘의 개선된 버전이며 sh보다 더 많은 기능을 가지고 있습니다. Bash는 일반적으로 대부분의 Linux 배포판의 기본 셸이며 bash 셸용으로 특별히 작성된 스크립트를 bash 스크립트라고 합니다.
스크립트가 다른 쉘 터미널에서 실행되더라도 스크립트가 사용할 쉘을 지정할 수 있습니다. 이렇게 하려면 #! 스크립트 파일 상단에 선택한 쉘의 절대 경로가옵니다. bash를 인터프리터로 지정하려면 쉘 스크립트 위에 다음 행을 추가하십시오.
#!/bin/bash>
이 라인을 셰뱅 라인이라고 합니다.
메모: 이것은 bash가 시스템에 설치된 경우에만 작동합니다.
비교 연산자
쉘 스크립팅에서 두 변수를 비교할 수 있습니다. 우리는 결정을 내리기 위해 이러한 비교를 수행합니다. 이 기사의 뒷부분에서 이를 수행하는 방법을 살펴보겠습니다. 하지만 그 전에, 여기에 몇 가지 비교 연산자 목록이 있습니다.
자바의 반환 유형
정수 비교
| 운영자 | 설명 |
|---|---|
| -eq | 동일하다 |
| - 이다 | 같지 않다 |
| -gt | 보다 크다 |
| -ge | 다음보다 크거나 같음 |
| -lt | 보다 작다 |
| -그만큼 | 다음보다 작거나 같음 |
문자열 비교
| 운영자 | 설명 |
|---|---|
| == | 동일하다 |
| != | 같지 않다 |
| < | ASCII 알파벳 순서로 보다 작습니다. |
| > | 다음보다 큼(ASCII 알파벳 순서) |
[ ] 구문에 입력할 때 이스케이프해야 하기 때문에 앞에 를 추가합니다. 이제 이것들이 어디에 사용되는지 살펴보겠습니다.
조건문
조건문은 특정 조건이 충족되는 경우에만 코드 블록을 실행하는 데 사용됩니다. 쉘 스크립트는 조건문 사용을 지원합니다. 조건을 확인하기 위해 비교 연산자를 사용합니다. 몇 가지 조건문을 살펴보겠습니다.
If 문
조건을 확인하고 조건이 참이면 명령을 실행합니다.
통사론
if [ condition ] then #statements fi>
예를 살펴보겠습니다.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.if 문
If-else 문
if-else 문에서는 조건이 충족되지 않을 경우 실행할 명령 집합을 지정할 수 있습니다.
통사론
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
예를 보자
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else 문
다른 조건문이 있습니다. 이에 대해 읽을 수 있습니다. 여기 .
메모: 확인할 조건을 지정하는 동안 [ 뒤 및 ] 앞에 공백을 입력하지 않으면 오류가 발생합니다.
루프
루프를 사용하면 특정 조건이 충족될 때까지 일련의 명령을 반복해서 실행할 수 있습니다. 몇 가지 루프를 살펴보겠습니다.
while 루프
조건이 true이면 지정된 명령 실행을 시작하고 조건이 false가 될 때까지 반복합니다.
통사론
while [ condition ] do #set of statements done>
예를 살펴보겠습니다.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

while 루프
변수에 할당할 때 expr 문을 ` ` 안에 넣습니다. expr 명령에 대한 내용은 여기에서 읽을 수 있습니다.
For 루프
for 루프에서 변수는 값 목록을 반복하고 더 이상 반복할 값이 없으면 종료됩니다.
통사론
for var in val1 val2 val3 do #statements done>
예를 살펴보겠습니다.
#!/bin/sh for var in 2 4 5 8 do echo $var done>

for 루프
루프에 대해 자세히 읽을 수 있습니다. 여기 .
위치 인수
위치 인수는 스크립트를 실행하는 동안 쉘 스크립트에 전달하는 인수 또는 값입니다. 변수 쉘은 운영 체제의 인터페이스입니다. 사용자로부터 명령을 받아 이를 운영 체제에 해석합니다. 여러 명령을 함께 실행하려면 쉘 스크립트를 작성하면 됩니다. 백업 수행과 같은 작업을 정기적으로 수행해야 하는 경우 셸 스크립트는 매우 유용합니다. 해당 명령을 나열하고 단일 스크립트로 모두 실행할 수 있습니다. 쉘 스크립트를 작성하고 Linux에서 실행하는 방법을 살펴보겠습니다. Linux 시스템에 로그인하고 터미널을 열고 쉘 스크립트를 저장할 폴더로 이동하십시오. 쉘 스크립트는 확장자 .sh로 끝납니다. 첫 번째 쉘 스크립트를 작성해 보겠습니다. 입력하세요 이제 이 스크립트 파일은 기본적으로 실행 가능하지 않으므로 이 파일에 실행 권한을 부여해야 합니다. 입력하세요 이제 이 쉘 스크립트에 몇 가지 명령을 추가하겠습니다. 원하는 텍스트 편집기(명령줄 기반 또는 GUI 기반)를 사용하여 이 셸 스크립트를 열고 몇 가지 명령을 추가하세요. 우리는 나노를 사용할 것입니다. 입력하세요 이 쉘 스크립트를 테스트하려면 다음 명령을 추가하십시오. 변경 사항을 저장하고 다음을 입력하여 쉘 스크립트를 실행하십시오. 위 단계의 스크린샷 보시다시피 지정된 모든 명령이 실행되었습니다. 쉘 스크립트에서 #으로 시작하는 모든 라인은 주석으로 처리되며 실행 중에 쉘에 의해 무시됩니다. 단, 이 글의 뒷부분에서 보게 될 shebang 라인은 예외입니다. 예를 살펴보겠습니다. 다음 내용으로 쉘 스크립트가 생성됩니다. 쉘 스크립트의 주석 보시다시피 댓글이 무시됩니다. 예, 셸 스크립트는 변수 사용을 지원하므로 변수 선언 중에 변수 유형을 정의할 필요가 없습니다. 변수에는 두 가지 유형이 있습니다. 환경 변수라고도 하는 시스템 정의 변수는 일반적으로 대문자로 표시됩니다. printenv 명령을 사용하면 현재 환경 변수를 모두 볼 수 있습니다. 사용자 정의 변수는 사용자가 설정하며 스크립트 실행 중에만 존재합니다. 간단히 이름을 입력하고 = 기호로 값을 할당하여 변수를 정의할 수 있으며, 변수 이름 앞에 $를 추가하여 변수에 액세스할 수 있습니다. 다음 예제 스크립트에서는 변수를 보여줍니다. 쉘 스크립트의 변수 Linux에는 bourne shell(sh), Korn Shell(ksh), GNU Bourne-Again Shell(bash) 등 다양한 쉘을 사용할 수 있습니다. sh 쉘용으로 작성된 스크립트를 쉘 스크립트라고 하며 ksh 쉘과 bash 쉘 모두에서 해석될 수 있습니다. ksh와 Bash는 원래 sh 쉘의 개선된 버전이며 sh보다 더 많은 기능을 가지고 있습니다. Bash는 일반적으로 대부분의 Linux 배포판의 기본 셸이며 bash 셸용으로 특별히 작성된 스크립트를 bash 스크립트라고 합니다. 스크립트가 다른 쉘 터미널에서 실행되더라도 스크립트가 사용할 쉘을 지정할 수 있습니다. 이렇게 하려면 #! 스크립트 파일 상단에 선택한 쉘의 절대 경로가옵니다. bash를 인터프리터로 지정하려면 쉘 스크립트 위에 다음 행을 추가하십시오. 이 라인을 셰뱅 라인이라고 합니다. 메모: 이것은 bash가 시스템에 설치된 경우에만 작동합니다. 쉘 스크립팅에서 두 변수를 비교할 수 있습니다. 우리는 결정을 내리기 위해 이러한 비교를 수행합니다. 이 기사의 뒷부분에서 이를 수행하는 방법을 살펴보겠습니다. 하지만 그 전에, 여기에 몇 가지 비교 연산자 목록이 있습니다. [ ] 구문에 입력할 때 이스케이프해야 하기 때문에 앞에 를 추가합니다. 이제 이것들이 어디에 사용되는지 살펴보겠습니다. 조건문은 특정 조건이 충족되는 경우에만 코드 블록을 실행하는 데 사용됩니다. 쉘 스크립트는 조건문 사용을 지원합니다. 조건을 확인하기 위해 비교 연산자를 사용합니다. 몇 가지 조건문을 살펴보겠습니다. 조건을 확인하고 조건이 참이면 명령을 실행합니다. 통사론 예를 살펴보겠습니다. .if 문 if-else 문에서는 조건이 충족되지 않을 경우 실행할 명령 집합을 지정할 수 있습니다. 통사론 예를 보자 .if-else 문 다른 조건문이 있습니다. 이에 대해 읽을 수 있습니다. 여기 . 메모: 확인할 조건을 지정하는 동안 [ 뒤 및 ] 앞에 공백을 입력하지 않으면 오류가 발생합니다. 루프를 사용하면 특정 조건이 충족될 때까지 일련의 명령을 반복해서 실행할 수 있습니다. 몇 가지 루프를 살펴보겠습니다. 조건이 true이면 지정된 명령 실행을 시작하고 조건이 false가 될 때까지 반복합니다. 통사론 예를 살펴보겠습니다. while 루프 변수에 할당할 때 expr 문을 ` ` 안에 넣습니다. expr 명령에 대한 내용은 여기에서 읽을 수 있습니다. for 루프에서 변수는 값 목록을 반복하고 더 이상 반복할 값이 없으면 종료됩니다. 통사론 예를 살펴보겠습니다. for 루프 루프에 대해 자세히 읽을 수 있습니다. 여기 . 위치 인수는 스크립트를 실행하는 동안 쉘 스크립트에 전달하는 인수 또는 값입니다. 변수 $0, $1, $2 ... $9에 의해 액세스됩니다. 그 외에도 ${10}, ${11} 등에서 참조됩니다. $#은 전달된 인수 수를 저장하고 $0은 스크립트 이름을 저장합니다. 이 모든 것을 이해하기 위해 예를 살펴보겠습니다. 인수를 전달하려면 아래와 같이 터미널에서 스크립트 이름 뒤에 인수를 입력하면 됩니다. 위치 인수 쉘 스크립트의 변수 내에 명령 출력을 저장할 수 있습니다. 그렇게 하는 방법에는 두 가지가 있습니다. 통사론 예를 살펴보겠습니다. 명령 출력 저장 명령이 종료되고 제어권이 상위 프로세스로 반환될 때마다 0에서 255 사이의 종료 코드가 반환됩니다. 종료 코드 0은 명령이 성공했음을 의미하고 다른 종료 코드는 명령이 실패했음을 의미합니다. $?에 액세스하여 명령을 실행한 후 종료 코드를 볼 수 있습니다. 변하기 쉬운. 아래 예를 참조하세요. 쉘 명령의 종료 코드 쉘 스크립트의 종료 코드를 수동으로 설정할 수 있습니다. 이는 스크립트의 목적이 달성되었는지 여부를 전달하기 위해 조건문과 함께 사용할 수 있습니다. 예 쉘 명령의 종료 코드 쉘은 운영 체제의 인터페이스입니다. 사용자로부터 명령을 받아 이를 운영 체제에 해석합니다. 여러 명령을 함께 실행하려면 쉘 스크립트를 작성하면 됩니다. 백업 수행과 같은 작업을 정기적으로 수행해야 하는 경우 셸 스크립트는 매우 유용합니다. 해당 명령을 나열하고 단일 스크립트로 모두 실행할 수 있습니다. 쉘 스크립트를 작성하고 Linux에서 실행하는 방법을 살펴보겠습니다. Linux 시스템에 로그인하고 터미널을 열고 쉘 스크립트를 저장할 폴더로 이동하십시오. 쉘 스크립트는 확장자 .sh로 끝납니다. 첫 번째 쉘 스크립트를 작성해 보겠습니다. 입력하세요 이제 이 스크립트 파일은 기본적으로 실행 가능하지 않으므로 이 파일에 실행 권한을 부여해야 합니다. 입력하세요 이제 이 쉘 스크립트에 몇 가지 명령을 추가하겠습니다. 원하는 텍스트 편집기(명령줄 기반 또는 GUI 기반)를 사용하여 이 셸 스크립트를 열고 몇 가지 명령을 추가하세요. 우리는 나노를 사용할 것입니다. 입력하세요 이 쉘 스크립트를 테스트하려면 다음 명령을 추가하십시오. 변경 사항을 저장하고 다음을 입력하여 쉘 스크립트를 실행하십시오. 위 단계의 스크린샷 보시다시피 지정된 모든 명령이 실행되었습니다. 쉘 스크립트에서 #으로 시작하는 모든 라인은 주석으로 처리되며 실행 중에 쉘에 의해 무시됩니다. 단, 이 글의 뒷부분에서 보게 될 shebang 라인은 예외입니다. 예를 살펴보겠습니다. 다음 내용으로 쉘 스크립트가 생성됩니다. 쉘 스크립트의 주석 보시다시피 댓글이 무시됩니다. 예, 셸 스크립트는 변수 사용을 지원하므로 변수 선언 중에 변수 유형을 정의할 필요가 없습니다. 변수에는 두 가지 유형이 있습니다. 환경 변수라고도 하는 시스템 정의 변수는 일반적으로 대문자로 표시됩니다. printenv 명령을 사용하면 현재 환경 변수를 모두 볼 수 있습니다. 사용자 정의 변수는 사용자가 설정하며 스크립트 실행 중에만 존재합니다. 간단히 이름을 입력하고 = 기호로 값을 할당하여 변수를 정의할 수 있으며, 변수 이름 앞에 $를 추가하여 변수에 액세스할 수 있습니다. 다음 예제 스크립트에서는 변수를 보여줍니다. 쉘 스크립트의 변수 Linux에는 bourne shell(sh), Korn Shell(ksh), GNU Bourne-Again Shell(bash) 등 다양한 쉘을 사용할 수 있습니다. sh 쉘용으로 작성된 스크립트를 쉘 스크립트라고 하며 ksh 쉘과 bash 쉘 모두에서 해석될 수 있습니다. ksh와 Bash는 원래 sh 쉘의 개선된 버전이며 sh보다 더 많은 기능을 가지고 있습니다. Bash는 일반적으로 대부분의 Linux 배포판의 기본 셸이며 bash 셸용으로 특별히 작성된 스크립트를 bash 스크립트라고 합니다. 스크립트가 다른 쉘 터미널에서 실행되더라도 스크립트가 사용할 쉘을 지정할 수 있습니다. 이렇게 하려면 #! 스크립트 파일 상단에 선택한 쉘의 절대 경로가옵니다. bash를 인터프리터로 지정하려면 쉘 스크립트 위에 다음 행을 추가하십시오. 이 라인을 셰뱅 라인이라고 합니다. 메모: 이것은 bash가 시스템에 설치된 경우에만 작동합니다. 쉘 스크립팅에서 두 변수를 비교할 수 있습니다. 우리는 결정을 내리기 위해 이러한 비교를 수행합니다. 이 기사의 뒷부분에서 이를 수행하는 방법을 살펴보겠습니다. 하지만 그 전에, 여기에 몇 가지 비교 연산자 목록이 있습니다. [ ] 구문에 입력할 때 이스케이프해야 하기 때문에 앞에 를 추가합니다. 이제 이것들이 어디에 사용되는지 살펴보겠습니다. 조건문은 특정 조건이 충족되는 경우에만 코드 블록을 실행하는 데 사용됩니다. 쉘 스크립트는 조건문 사용을 지원합니다. 조건을 확인하기 위해 비교 연산자를 사용합니다. 몇 가지 조건문을 살펴보겠습니다. 조건을 확인하고 조건이 참이면 명령을 실행합니다. 통사론 예를 살펴보겠습니다. .if 문 if-else 문에서는 조건이 충족되지 않을 경우 실행할 명령 집합을 지정할 수 있습니다. 통사론 예를 보자 .if-else 문 다른 조건문이 있습니다. 이에 대해 읽을 수 있습니다. 여기 . 메모: 확인할 조건을 지정하는 동안 [ 뒤 및 ] 앞에 공백을 입력하지 않으면 오류가 발생합니다. 루프를 사용하면 특정 조건이 충족될 때까지 일련의 명령을 반복해서 실행할 수 있습니다. 몇 가지 루프를 살펴보겠습니다. 조건이 true이면 지정된 명령 실행을 시작하고 조건이 false가 될 때까지 반복합니다. 통사론 예를 살펴보겠습니다. while 루프 변수에 할당할 때 expr 문을 ` ` 안에 넣습니다. expr 명령에 대한 내용은 여기에서 읽을 수 있습니다. for 루프에서 변수는 값 목록을 반복하고 더 이상 반복할 값이 없으면 종료됩니다. 통사론 예를 살펴보겠습니다. for 루프 루프에 대해 자세히 읽을 수 있습니다. 여기 . 위치 인수는 스크립트를 실행하는 동안 쉘 스크립트에 전달하는 인수 또는 값입니다. 변수 $0, $1, $2 ... $9에 의해 액세스됩니다. 그 외에도 ${10}, ${11} 등에서 참조됩니다. $#은 전달된 인수 수를 저장하고 $0은 스크립트 이름을 저장합니다. 이 모든 것을 이해하기 위해 예를 살펴보겠습니다. 인수를 전달하려면 아래와 같이 터미널에서 스크립트 이름 뒤에 인수를 입력하면 됩니다. 위치 인수 쉘 스크립트의 변수 내에 명령 출력을 저장할 수 있습니다. 그렇게 하는 방법에는 두 가지가 있습니다. 통사론 예를 살펴보겠습니다. 명령 출력 저장 명령이 종료되고 제어권이 상위 프로세스로 반환될 때마다 0에서 255 사이의 종료 코드가 반환됩니다. 종료 코드 0은 명령이 성공했음을 의미하고 다른 종료 코드는 명령이 실패했음을 의미합니다. $?에 액세스하여 명령을 실행한 후 종료 코드를 볼 수 있습니다. 변하기 쉬운. 아래 예를 참조하세요. 쉘 명령의 종료 코드 쉘 스크립트의 종료 코드를 수동으로 설정할 수 있습니다. 이는 스크립트의 목적이 달성되었는지 여부를 전달하기 위해 조건문과 함께 사용할 수 있습니다. 예 쉘 명령의 종료 코드쉘 스크립트 생성
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

쉘 스크립트의 주석
# This is a comment echo Testing comments in shell script>

쉘 스크립트의 변수
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

쉘 스크립트 인터프리터 정의
#!/bin/bash>
비교 연산자
정수 비교
운영자 설명 -eq 동일하다 - 이다 같지 않다 -gt 보다 크다 -ge 다음보다 크거나 같음 -lt 보다 작다 -그만큼 다음보다 작거나 같음 문자열 비교
운영자 설명 == 동일하다 != 같지 않다 < ASCII 알파벳 순서로 보다 작습니다. > 다음보다 큼(ASCII 알파벳 순서) 조건문
If 문
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

If-else 문
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

루프
while 루프
while [ condition ] do #set of statements done>
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

For 루프
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

위치 인수
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

명령 출력 저장
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

쉘 명령의 종료 코드

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

쉘 스크립트 생성
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

쉘 스크립트의 주석
# This is a comment echo Testing comments in shell script>

쉘 스크립트의 변수
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

쉘 스크립트 인터프리터 정의
#!/bin/bash>
비교 연산자
정수 비교
운영자 설명 -eq 동일하다 - 이다 같지 않다 -gt 보다 크다 -ge 다음보다 크거나 같음 -lt 보다 작다 -그만큼 다음보다 작거나 같음 문자열 비교
운영자 설명 == 동일하다 != 같지 않다 < ASCII 알파벳 순서로 보다 작습니다. > 다음보다 큼(ASCII 알파벳 순서) 조건문
If 문
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

If-else 문
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

루프
while 루프
while [ condition ] do #set of statements done>
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

For 루프
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

위치 인수
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

명령 출력 저장
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

쉘 명령의 종료 코드

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is' echo 'First argument is ' echo 'Second argument is '> 쉘은 운영 체제의 인터페이스입니다. 사용자로부터 명령을 받아 이를 운영 체제에 해석합니다. 여러 명령을 함께 실행하려면 쉘 스크립트를 작성하면 됩니다. 백업 수행과 같은 작업을 정기적으로 수행해야 하는 경우 셸 스크립트는 매우 유용합니다. 해당 명령을 나열하고 단일 스크립트로 모두 실행할 수 있습니다. 쉘 스크립트를 작성하고 Linux에서 실행하는 방법을 살펴보겠습니다.
쉘 스크립트 생성
Linux 시스템에 로그인하고 터미널을 열고 쉘 스크립트를 저장할 폴더로 이동하십시오. 쉘 스크립트는 확장자 .sh로 끝납니다. 첫 번째 쉘 스크립트를 작성해 보겠습니다. 입력하세요
touch script.sh>이제 이 스크립트 파일은 기본적으로 실행 가능하지 않으므로 이 파일에 실행 권한을 부여해야 합니다. 입력하세요
chmod +x script.sh>이제 이 쉘 스크립트에 몇 가지 명령을 추가하겠습니다. 원하는 텍스트 편집기(명령줄 기반 또는 GUI 기반)를 사용하여 이 셸 스크립트를 열고 몇 가지 명령을 추가하세요. 우리는 나노를 사용할 것입니다. 입력하세요
nano script.sh>이 쉘 스크립트를 테스트하려면 다음 명령을 추가하십시오.
echo This is my first shell script touch testfile ls echo End of my shell script>변경 사항을 저장하고 다음을 입력하여 쉘 스크립트를 실행하십시오.
./script.sh>위 단계의 스크린샷
보시다시피 지정된 모든 명령이 실행되었습니다.
쉘 스크립트의 주석
쉘 스크립트에서 #으로 시작하는 모든 라인은 주석으로 처리되며 실행 중에 쉘에 의해 무시됩니다. 단, 이 글의 뒷부분에서 보게 될 shebang 라인은 예외입니다. 예를 살펴보겠습니다. 다음 내용으로 쉘 스크립트가 생성됩니다.
# This is a comment echo Testing comments in shell script>쉘 스크립트의 주석
보시다시피 댓글이 무시됩니다.
쉘 스크립트의 변수
예, 셸 스크립트는 변수 사용을 지원하므로 변수 선언 중에 변수 유형을 정의할 필요가 없습니다. 변수에는 두 가지 유형이 있습니다.
- 시스템 정의 변수
- 사용자 정의 변수.
환경 변수라고도 하는 시스템 정의 변수는 일반적으로 대문자로 표시됩니다. printenv 명령을 사용하면 현재 환경 변수를 모두 볼 수 있습니다. 사용자 정의 변수는 사용자가 설정하며 스크립트 실행 중에만 존재합니다. 간단히 이름을 입력하고 = 기호로 값을 할당하여 변수를 정의할 수 있으며, 변수 이름 앞에 $를 추가하여 변수에 액세스할 수 있습니다. 다음 예제 스크립트에서는 변수를 보여줍니다.
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>쉘 스크립트의 변수
쉘 스크립트 인터프리터 정의
Linux에는 bourne shell(sh), Korn Shell(ksh), GNU Bourne-Again Shell(bash) 등 다양한 쉘을 사용할 수 있습니다. sh 쉘용으로 작성된 스크립트를 쉘 스크립트라고 하며 ksh 쉘과 bash 쉘 모두에서 해석될 수 있습니다. ksh와 Bash는 원래 sh 쉘의 개선된 버전이며 sh보다 더 많은 기능을 가지고 있습니다. Bash는 일반적으로 대부분의 Linux 배포판의 기본 셸이며 bash 셸용으로 특별히 작성된 스크립트를 bash 스크립트라고 합니다.
스크립트가 다른 쉘 터미널에서 실행되더라도 스크립트가 사용할 쉘을 지정할 수 있습니다. 이렇게 하려면 #! 스크립트 파일 상단에 선택한 쉘의 절대 경로가옵니다. bash를 인터프리터로 지정하려면 쉘 스크립트 위에 다음 행을 추가하십시오.
#!/bin/bash>이 라인을 셰뱅 라인이라고 합니다.
메모: 이것은 bash가 시스템에 설치된 경우에만 작동합니다.
비교 연산자
쉘 스크립팅에서 두 변수를 비교할 수 있습니다. 우리는 결정을 내리기 위해 이러한 비교를 수행합니다. 이 기사의 뒷부분에서 이를 수행하는 방법을 살펴보겠습니다. 하지만 그 전에, 여기에 몇 가지 비교 연산자 목록이 있습니다.
정수 비교
운영자 설명 -eq 동일하다 - 이다 같지 않다 -gt 보다 크다 -ge 다음보다 크거나 같음 -lt 보다 작다 -그만큼 다음보다 작거나 같음 문자열 비교
운영자 설명 == 동일하다 != 같지 않다 < ASCII 알파벳 순서로 보다 작습니다. > 다음보다 큼(ASCII 알파벳 순서) [ ] 구문에 입력할 때 이스케이프해야 하기 때문에 앞에 를 추가합니다. 이제 이것들이 어디에 사용되는지 살펴보겠습니다.
조건문
조건문은 특정 조건이 충족되는 경우에만 코드 블록을 실행하는 데 사용됩니다. 쉘 스크립트는 조건문 사용을 지원합니다. 조건을 확인하기 위해 비교 연산자를 사용합니다. 몇 가지 조건문을 살펴보겠습니다.
If 문
조건을 확인하고 조건이 참이면 명령을 실행합니다.
통사론
if [ condition ] then #statements fi>예를 살펴보겠습니다.
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>.if 문
If-else 문
if-else 문에서는 조건이 충족되지 않을 경우 실행할 명령 집합을 지정할 수 있습니다.
통사론
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>예를 보자
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>.if-else 문
다른 조건문이 있습니다. 이에 대해 읽을 수 있습니다. 여기 .
메모: 확인할 조건을 지정하는 동안 [ 뒤 및 ] 앞에 공백을 입력하지 않으면 오류가 발생합니다.
루프
루프를 사용하면 특정 조건이 충족될 때까지 일련의 명령을 반복해서 실행할 수 있습니다. 몇 가지 루프를 살펴보겠습니다.
while 루프
조건이 true이면 지정된 명령 실행을 시작하고 조건이 false가 될 때까지 반복합니다.
통사론
while [ condition ] do #set of statements done>예를 살펴보겠습니다.
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>while 루프
변수에 할당할 때 expr 문을 ` ` 안에 넣습니다. expr 명령에 대한 내용은 여기에서 읽을 수 있습니다.
For 루프
for 루프에서 변수는 값 목록을 반복하고 더 이상 반복할 값이 없으면 종료됩니다.
통사론
for var in val1 val2 val3 do #statements done>예를 살펴보겠습니다.
#!/bin/sh for var in 2 4 5 8 do echo $var done>for 루프
루프에 대해 자세히 읽을 수 있습니다. 여기 .
위치 인수
위치 인수는 스크립트를 실행하는 동안 쉘 스크립트에 전달하는 인수 또는 값입니다. 변수 $0, $1, $2 ... $9에 의해 액세스됩니다. 그 외에도 ${10}, ${11} 등에서 참조됩니다. $#은 전달된 인수 수를 저장하고 $0은 스크립트 이름을 저장합니다. 이 모든 것을 이해하기 위해 예를 살펴보겠습니다.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>인수를 전달하려면 아래와 같이 터미널에서 스크립트 이름 뒤에 인수를 입력하면 됩니다.
위치 인수
명령 출력 저장
쉘 스크립트의 변수 내에 명령 출력을 저장할 수 있습니다. 그렇게 하는 방법에는 두 가지가 있습니다.
통사론
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>예를 살펴보겠습니다.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>명령 출력 저장
쉘 명령의 종료 코드
명령이 종료되고 제어권이 상위 프로세스로 반환될 때마다 0에서 255 사이의 종료 코드가 반환됩니다. 종료 코드 0은 명령이 성공했음을 의미하고 다른 종료 코드는 명령이 실패했음을 의미합니다. $?에 액세스하여 명령을 실행한 후 종료 코드를 볼 수 있습니다. 변하기 쉬운. 아래 예를 참조하세요.
쉘 명령의 종료 코드
쉘 스크립트의 종료 코드를 수동으로 설정할 수 있습니다. 이는 스크립트의 목적이 달성되었는지 여부를 전달하기 위해 조건문과 함께 사용할 수 있습니다.
예
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>쉘 명령의 종료 코드
인수를 전달하려면 아래와 같이 터미널에서 스크립트 이름 뒤에 인수를 입력하면 됩니다.

위치 인수
문자열을 int로 자바
명령 출력 저장
쉘 스크립트의 변수 내에 명령 출력을 저장할 수 있습니다. 그렇게 하는 방법에는 두 가지가 있습니다.
통사론
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
예를 살펴보겠습니다.
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

명령 출력 저장
쉘 명령의 종료 코드
명령이 종료되고 제어권이 상위 프로세스로 반환될 때마다 0에서 255 사이의 종료 코드가 반환됩니다. 종료 코드 0은 명령이 성공했음을 의미하고 다른 종료 코드는 명령이 실패했음을 의미합니다. $?에 액세스하여 명령을 실행한 후 종료 코드를 볼 수 있습니다. 변하기 쉬운. 아래 예를 참조하세요.

쉘 명령의 종료 코드
쉘 스크립트의 종료 코드를 수동으로 설정할 수 있습니다. 이는 스크립트의 목적이 달성되었는지 여부를 전달하기 위해 조건문과 함께 사용할 수 있습니다.
예
#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

쉘 명령의 종료 코드