쉘은 운영 체제의 인터페이스입니다. 사용자로부터 명령을 받아 이를 운영 체제에 해석합니다. 여러 명령을 함께 실행하려면 쉘 스크립트를 작성하면 됩니다. 백업 수행과 같은 작업을 정기적으로 수행해야 하는 경우 셸 스크립트는 매우 유용합니다. 해당 명령을 나열하고 단일 스크립트로 모두 실행할 수 있습니다. 쉘 스크립트를 작성하고 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로 끝납니다. 첫 번째 쉘 스크립트를 작성해 보겠습니다. 입력하세요
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>

쉘 명령의 종료 코드
, , ... 에 의해 액세스됩니다. 그 외에도 , 등에서 참조됩니다. $#은 전달된 인수 수를 저장하고
쉘은 운영 체제의 인터페이스입니다. 사용자로부터 명령을 받아 이를 운영 체제에 해석합니다. 여러 명령을 함께 실행하려면 쉘 스크립트를 작성하면 됩니다. 백업 수행과 같은 작업을 정기적으로 수행해야 하는 경우 셸 스크립트는 매우 유용합니다. 해당 명령을 나열하고 단일 스크립트로 모두 실행할 수 있습니다. 쉘 스크립트를 작성하고 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>

쉘 명령의 종료 코드
은 스크립트 이름을 저장합니다. 이 모든 것을 이해하기 위해 예를 살펴보겠습니다.
#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script 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>

쉘 명령의 종료 코드
' echo 'First argument is ' echo 'Second argument is '>
인수를 전달하려면 아래와 같이 터미널에서 스크립트 이름 뒤에 인수를 입력하면 됩니다.

위치 인수
문자열을 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>

쉘 명령의 종료 코드