Bash 스크립트 변수 배치

Bash 스크립트 변수 배치

Bash 스크립팅을 배우기 시작했고Bash 스크립팅 튜토리얼

거기에서 말했다

Bash가 스크립트의 각 줄을 해석(또는 실행)하기 전먼저 변수 이름이 있는지 확인하십시오.. 인식하는 각 변수에 대해 변수 이름을 해당 값으로 바꿉니다. 그런 다음 해당 코드 줄을 실행하고 다음 줄에서 프로세스를 다시 시작합니다.

그렇다면 Bash는 변수를 찾기 위해 먼저 전체 스크립트를 실행합니까? 글쓴이가 그런 말을 하려고 한 것인지는 모르겠지만, 그렇다면 틀린 말이 아닐까요?

내가 실행할 때 :

#!/bin/bash


echo "hello $USERR"



USERR=John

나는 hello결과를 얻습니다.

내가 실행하면 :

#!/bin/bash


USERR=John

echo "hello $USERR"

hello John그런 다음 결과를 얻습니다 .

답변1

그렇다면 Bash는 변수를 찾기 위해 먼저 전체 스크립트를 실행합니까?

아니요. 예제에서 발견한 것처럼 Bash 스크립트는 위에서 아래로 실행됩니다.

좋은 방법은 스크립트 상단에서 필요한 모든 변수를 정의하는 것입니다.

답변2

이는 쉘이 확장을 위해 모든 명령을 검색한다고 말하는 매우 엉성한 방법입니다.예를 들어변수(및 명령 대체 등)

텍스트할 수 있다쉘이 전체 스크립트를 읽고 실행하기 전에 각 줄에서 변수를 찾는다는 것을 암시하는 것으로 해석됩니다. 그러나 실제로는 그렇지 않습니다. 한 줄씩 처리하는 것이 아니라 명령별로 스크립트 명령을 처리합니다. 명령은 여러 줄에 걸쳐 있을 수 있습니다. 스크립트를 실행하는 동안 쉘 인터프리터가 명령에 도달할 때까지 명령은 처리되지 않습니다.

쉘은 bash각 명령을 실행하기 전에 다음을 수행합니다.

  1. 버팀대 확장
  2. 물결표 확장
  3. 매개변수 및 변수 확장
  4. 산술 확장
  5. 명령 대체(왼쪽에서 오른쪽으로 수행)
  6. 분사
  7. 경로명 확장
  8. 견적 삭제

관련 정보