Bash는 입력을 어떻게 읽나요?

Bash는 입력을 어떻게 읽나요?

Bash 참조 매뉴얼을 읽을 때쉘 작업, 그것은 말한다 :

  1. 해당 입력은 파일(셸 스크립팅 참조), -c 호출 옵션(Bash 호출 참조)에 대한 인수로 제공되는 문자열 또는 사용자 터미널에서 읽혀집니다.

내 질문은 다음과 같습니다.

  1. 입력을 읽는 세 가지 방법의 차이점은 무엇입니까?
  2. 스크립트에 매개변수가 있을 수 있나요? 좋다$ ./script arg1 arg2 ...

일부 명령을 입력하면 터미널이 다음과 같이 보입니다.

$ command1 arg1 arg2 ...

command1Bash는 그것이 스크립트(스크립트 내용 읽기)가 아니라 실행 파일(추가 처리 없이 실행만 함)인지 어떻게 알 수 있습니까 ?

답변1

  1. 주요 차이점은 터미널에서 읽을 때 쉘이 프롬프트를 표시한다는 것입니다. 그렇지 않으면 차이가 없습니다

    $ echo ls > script
    $ bash script
    script
    $ bash -c ls
    script
    $ ls
    script
    

    쉘은 대화식으로 실행되는지 여부를 알고 있으며 이로 인해 일부 명령이 다르게 작동할 수 있습니다.

  2. 네, 이것은 매우 흔한 일입니다. 문자열의 인수는 위치 인수를 채웁니다. $@$1et al. 에서 검색하세요 .$2man bash

    의 매개변수, 함수 및 별칭을 참조하세요 man bash. 간단히 말해서, 를 실행하면 command1 arg1 arg2bash는 먼저 별칭을 확장 command1하고 결과를 실행하거나 함수를 실행하려고 시도하며 command1, 그것도 가능하지 않으면 해당 에서 실행을 시도합니다 $PATH.

관련 정보