Bash 서브쉘

Bash Seobeuswel



경우에 따라 백그라운드에서 하나 이상의 명령이나 스크립트를 실행해야 합니다. 이 작업은 모든 명령 또는 스크립트를 스크립트 파일에 작성하고 앰퍼샌드(&)를 사용하여 파일을 실행하거나 현재 셸에서 하위 셸로 명령 또는 스크립트를 실행하여 수행할 수 있습니다. 하위 셸은 $() 또는 백틱(`)으로 둘러싸서 여러 명령이나 스크립트를 실행하는 데 사용할 수 있습니다. Bash 서브쉘을 사용하는 방법은 이 튜토리얼에 나와 있습니다.

서브쉘의 다른 예

서브셸에서 스크립트를 실행하는 다양한 방법은 튜토리얼의 이 부분에 나와 있습니다.

예 1: 작은따옴표와 큰따옴표를 사용하여 서브쉘 실행

현재 날짜와 시간을 인쇄하는 다음 스크립트를 사용하여 Bash 파일을 만듭니다. 다음으로 $strVal 변수는 작은따옴표와 큰따옴표로 서브쉘 스크립트를 둘러싸서 인쇄됩니다.







#!/빈/배시

#서브쉘에서 `date` 명령을 출력합니다.

에코 '오늘은 `날짜` '

#문자열 변수 정의

strVal = '배쉬 서브쉘'

# 작은 따옴표를 사용하여 하위 쉘의 변수를 인쇄합니다.

에코 '작은따옴표 출력:' '$(에코 $strVal)'

# 큰따옴표를 사용하여 하위 쉘의 변수를 인쇄합니다.

에코 '큰따옴표 출력:' ' $(에코 $strVal) '

스크립트를 실행한 후 다음 출력이 나타납니다. 서브쉘 스크립트는 작은 따옴표로 묶여 있을 때 문자열로 인쇄됩니다. 하위 셸 스크립트는 큰따옴표로 묶일 때 실행됩니다.





예 2: 서브쉘을 사용하여 특정 확장자의 모든 파일 검색

파일 확장자를 사용자 입력으로 사용하는 다음 스크립트를 사용하여 Bash 파일을 만듭니다. 다음으로 'ls' 명령은 해당 특정 확장자의 모든 파일을 검색하기 위해 하위 셸에서 실행됩니다.





#!/빈/배시

에코 -N '파일 확장자의 이름을 입력하세요:'

# 검색할 파일 확장명을 가져옵니다.

읽다 내선

#입력값 확인

만약에 [ [ $ext == '' ] ] ; 그 다음에

#오류 메시지 인쇄

에코 '연장이 주어지지 않습니다.'

또 다른

에코 '파일 이름 $ext 확대:'

#주어진 확장자를 가진 모든 파일명 출력

에코 ' $( echo `ls *.$ext` ) '

BE

'txt' 입력으로 스크립트를 실행하면 다음 출력이 나타납니다. 출력에 따르면 현재 위치에 세 개의 텍스트 파일이 있습니다.



빈 값으로 스크립트를 실행하면 다음 출력이 나타납니다.

예제 3: 서브쉘에서 산술 표현식 실행

메인 쉘과 서브 쉘에서 동일한 이름의 변수가 사용되는 다음 스크립트로 Bash 파일을 작성하십시오. 산술 연산은 메인 쉘과 서브 쉘에서 정의됩니다.

#!/빈/배시

#부모 쉘 변수 정의

숫자 = 10

# 상위 쉘의 변수를 기반으로 결과를 인쇄합니다.

( ( 결과 = $번호 + 5 ) )

에코 '의 합 $번호 +5= $결과 '

# 상위 쉘과 동일한 이름으로 하위 쉘 변수 생성

( 숫자 = 이십 ; ( ( 결과 = $번호 + 10 ) ) ; 에코 '의 합 $번호 +5= $결과 ' )

# 다시 상위 쉘의 변수를 기반으로 결과를 출력

에코 '의 합 $번호 +5= $결과 '

스크립트를 실행한 후 다음 출력이 나타납니다. 첫 번째 출력과 마지막 출력은 기본 셸의 결과를 보여줍니다. 두 번째 출력은 서브쉘의 결과를 보여줍니다. 메인 쉘의 변수는 서브 쉘의 변수에 의해 수정되지 않습니다.

예 4: 하위 셸에서 여러 명령 실행

'echo' 명령의 출력을 일치하는 문자열 값을 다른 문자열로 바꾸는 'sed' 명령으로 보내는 다음 스크립트로 Bash 파일을 만듭니다. 'echo' 명령의 출력은 'JavaScript'입니다. 따라서 이 값을 'Java' 및 'JavaScript'와 비교합니다. 일치하는 항목이 있으면 일치하는 문자열이 'Type' 문자열로 대체됩니다.

#!/빈/배시

#문자열 값 정의

strVal = '자바스크립트'

# 원래 문자열 값을 출력합니다.

에코 '문자열 값: $strVal '

#서브쉘 값 출력

에코 -N '서브쉘 값: '

에코 ' $(echo $strVal | sed 's|Java|JavaScript 유형|') '

스크립트를 실행한 후 다음 출력이 나타납니다. 출력에 따르면 'Java' 문자열은 'Type' 문자열로 대체됩니다. 하위 셸의 출력은 'JavaScript TypeScript'입니다.


결론

주 셸에 영향을 주지 않고 하위 셸을 사용하여 하나 이상의 명령 또는 스크립트를 실행할 수 있습니다. 서브쉘을 사용하는 목적은 이 튜토리얼에서 여러 예제를 사용하여 설명합니다. 파일 검색, 숫자 합계 계산, 문자열 교체 등과 같은 다양한 유형의 작업은 주어진 예제에서 서브쉘에 의해 수행됩니다. 서브쉘 사용의 개념이 적절하게 설명되었으며 새로운 Bash 사용자는 이제 이 튜토리얼을 읽은 후 서브쉘을 사용할 수 있습니다.