Bash 스크립트에서 인수를 어떻게 전달합니까?

How Do I Pass Argument Bash Script



대부분의 Linux Mint 20 사용자는 bash 스크립트에서 인수를 전달할 때 막혔습니다. 모든 bash 스크립트가 실행될 때 인수를 전달할 수 있습니다. bash 스크립트에서 인수를 전달하는 몇 가지 간단하고 유용한 방법이 있습니다. 이 기사 가이드에서는 bash 스크립트에서 인수를 전달하고 사용하는 매우 쉬운 방법에 대해 알려줄 것입니다.

기본 변수를 사용하여 인수 전달:

touch 명령을 사용하여 임의의 이름으로 새 파일을 만듭니다(예: file.sh).







$만지다파일 이름



새로 생성된 이 파일을 열고 bash 스크립트를 추가합니다. 몇 가지 기본 변수를 추가했습니다. 결과적으로 $1, $2, $3입니다. 터미널을 통해 전달되는 모든 인수는 명시된 변수에 저장됩니다.







./ 명령과 몇 가지 인수를 사용하여 이 파일을 실행해야 합니다. 그림에서 볼 수 있듯이 인수를 전달할 때 오류가 발생합니다. 권한이 거부되었습니다. 이 파일에 실행 권한이 없기 때문입니다.

$./파일 이름 인수1 인수2 인수

따라서 이 파일에 실행 권한을 부여하려면 sudo chmod 명령을 사용하십시오.



$수도 chmod+x 파일 이름

이제 위의 동일한 명령을 사용하여 파일을 다시 실행합니다. 이번에는 다른 주장을 했습니다. 새로 전달된 인수가 기본 변수에 저장되어 있는 것을 볼 수 있습니다.

셸 스크립트 이름을 인수로 전달:

이제 기본 변수를 약간 변경하여 동일한 이전 파일 file.sh를 사용합니다. 표시된 대로 스크립트에 변수 $0을 추가해야 합니다.

동일한 ./ 셸 스크립트 명령을 실행할 때 셸 스크립트의 이름(예: ./filename은 $0 변수에 인수로 저장됩니다.

변수에 배열로 인수 전달:

동일한 파일 file.sh로 시작하여 이전 스크립트에 몇 줄을 추가해야 합니다. array라는 변수를 선언합니다. 사용자가 입력한 인수를 배열로 저장할 기본 변수 [email protected]를 추가합니다. 이러한 인수는 변수 배열로 구문 분석됩니다. 마지막 줄은 인덱스 번호로 정렬된 변수 배열의 모든 인수를 표시합니다.

./ 셸 스크립트를 실행합니다. 변수 배열로 구문 분석된 [email protected]에 배열로 저장된 인수 또는 값이 표시되지만 두 번째 echo 문에서는 셸 스크립트 이름이 표시되지 않습니다. 다음 출력이 표시됩니다.

$./파일 이름 인수1 인수2 인수

동일한 스크립트로 동일한 파일을 사용하십시오. 그림과 같이 마지막 줄에서 ${array[3]}를 제거하면 됩니다.

./ 명령을 실행한 후 위의 예에서 얻은 것과 유사한 출력을 변경 없이 볼 수 있습니다.

bash 스크립트의 마지막 줄을 한 단어로 바꿔도 같은 결과를 얻을 수 있습니다. echo 문에 [email protected]를 추가하기만 하면 이 변수 ​​배열에 있는 인수가 표시됩니다.

따라서 ./ 명령을 다시 실행하면 동일한 결과를 얻을 수 있습니다.

통과된 총 인수 수 확인:

반대로 사용자가 전달한 총 인수 수를 알고 싶다면 그렇게 할 수도 있습니다. 이를 위해 echo에서 [email protected]를 $#으로 바꾸면 됩니다.

다시 ./ 명령을 실행하면 스크립트에 전달된 인수의 전체 그림을 볼 수 있습니다. 우리의 경우 3개의 인수가 값으로 전달됩니다.

인수의 라인별 출력 생성:

홈 디렉토리에 새 파일 test.sh를 작성하십시오. 표시된 대로 bash 스크립트를 추가하십시오.

이제 다른 인수로 동일한 이전 명령을 실행합니다. 먼저 다음 오류가 표시됩니다. 권한이 거부되었습니다.

이 파일에 sudo 권한을 부여하려면 chmod 명령을 실행해야 합니다. 그런 다음 ./ shell 스크립트 명령을 다시 실행하십시오. 그리고 라인별로 정렬된 인수 출력을 얻을 수 있습니다.

인수 인덱스 번호를 통해 변수 제한:

인덱스 번호를 사용하여 변수를 제한하려는 경우 매우 쉽게 수행할 수 있습니다. $ 기호 뒤에 중괄호를 추가하고 다른 인수 앞에 표시하려는 인수 인덱스 번호를 추가합니다.

사용자가 제공한 인수가 제한 변수에 제공된 인덱스 번호보다 작으면 빈 인수 값을 얻게 됩니다. 예를 들어 4개의 인수를 제공했지만 표시할 05개의 인수 값을 제공했습니다. 이 상황에서는 다섯 번째 인수가 전달되지 않았기 때문에 변수가 비어 있는 상태로 표시됩니다.

그러나 명령에서 같거나 더 많은 수의 인수를 전달하면 표시된 대로 결과에 값이 표시됩니다.

특정 값 인수 확인:

홈 디렉토리에 이름이 Check.sh인 새 파일을 만드십시오. 아래 이미지와 같이 동일한 bash 스크립트를 추가합니다. 이 스크립트에는 사용자가 전달한 인수 값을 저장할 변수 var가 있습니다. 그런 다음 인수 값이 일치하는지 여부를 확인하는 if 문이 있습니다. 인수 값이 괄호 안에 제공된 값과 일치하면 첫 번째 echo 문이 실행됩니다. 값이 일치하지 않으면 두 번째 echo 문이 실행됩니다.

쉘 스크립트 명령을 실행하면 오류가 발생합니다. chmod 명령을 사용하여 이 오류를 수정할 수 있습니다.

그런 다음 일부 인수 값을 사용하여 특정 파일에 대한 셸 스크립트를 실행합니다. 우리의 경우 괄호 안에 표시된 값과 동일한 Aqsa를 인수 값으로 제공했습니다. 따라서 bash 스크립트는 표시된 대로 첫 번째 echo 문을 실행합니다.

반면에 쉘 스크립트에서 다른 인수 값을 제공하면 다른 echo 문을 표시합니다. 여기에 if 문에서 제공하는 값과 다른 인수 값으로 Rimsha를 추가했습니다. 따라서 bash 스크립트는 두 번째 echo 문을 실행합니다.

결론:

이 가이드가 기본 변수에 인수를 전달하는 방법, 인수 값을 변수에 배열로 전달하는 방법, 전달된 총 인수 수를 얻는 방법, 인수를 한 줄씩 출력하는 방법, 인수를 제한하는 방법에 대해 충분히 이해하는 데 도움이 되었기를 바랍니다. 인덱스 번호를 사용하여 출력하고 특정 값 인수 등을 확인합니다.