Bash 스크립트의 명령과 터미널 명령의 차이점

Bash 스크립트의 명령과 터미널 명령의 차이점

터미널에 입력하는 명령과 스크립트에 포함하는 명령에 차이가 있나요?

답변1

bash터미널은 명령을 요청하고 실행하는 쉘(대개 )을 실행합니다 .

이 대화형 모드 외에도 셸을 사용하여 파일에서 명령을 실행할 수도 있습니다. 파일에서 명령을 실행하려면 셸을 직접 호출 bash script하거나 "shebang"을 사용하여 파일을 시작 #!/bin/bash하고 실행 가능하게 만들 수 있습니다( chmod +x script). 그런 다음 스크립트를 바이너리로 처리하여 실행하거나 ./script셸이 찾는 위치에 배치할 수 있습니다. ( echo $PATH)

대화형 셸과 실행 중인 셸은 모두 bash. "Linux를 배우는 첫 날" 관점에서 bash는 두 모드에서 정확히 동일하게 작동합니다. - 나중에 미묘한 차이를 발견할 수도 있습니다. 정말로 더 자세히 알고 싶다면 man bash"interactive"가 언급된 곳을 읽고 검색해 보는 것이 좋습니다. (버튼을 누르면 매뉴얼 페이지를 검색할 수 있습니다 /.)

주목해야 할 중요한 점 중 하나는 스크립트가 새로운 프로세스로 실행된다는 것입니다. 특히 이는 스크립트에 설정된 변수가 호출 셸에 표시되지 않음을 의미합니다.

$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$ 

내보내지 않으면 a내부 스크립트도 표시되지 않습니다.

답변2

일반적으로 대답은 "아니요"입니다. 셸의 명령은 스크립트 방식, 구문 및 의미 측면에서 동일합니다.

그러나 환경 구성(사용되는 변수 및 설정 항목)과 관련된 몇 가지 작은 세부 정보가 있습니다.

  • Linux에서 선택한 대화형 쉘은 bash이지만 스크립팅은 종종 다른 인터프리터(bash sh의 이전 버전이며 bash와 동일함)를 사용하므로 사용 중인 쉘(현재 쉘의 이름)이 전통적으로 사용되는 쉘인지 고려해야 합니다. 변수에 보관되어 있습니다. 입력해 보세요.)bashkshSHELLecho $SHELL

  • 대화형 세션 및 스크립트 실행에 대해 동일한 인터프리터 구성에 차이가 있을 수 있습니다.

답변3

아니요. 스크립트는 터미널에 입력할 수 있는 명령 목록입니다.

스크립트의 전체 내용을 터미널에 붙여넣으면 실행한 것과 결과가 동일해집니다.

대신 터미널 명령을 파일에 "저장"하고 이를 재사용 가능한 스크립트로 변환하여 가족 및 친구와 공유할 수 있습니다.

관련 정보