Bash가 제어 연산자를 해석하는 방법

Bash가 제어 연산자를 해석하는 방법

역추적을 사용하여 Rust 프로그램을 실행하려면 환경 변수 RUST_BACKTRACE를 1로 설정하고 프로그램을 실행해야 합니다. 따라서 경험이 없는 bash 사용자의 첫 번째 추측은 다음과 같습니다.

$ RUST_BACKTRACE=1 && cargo run
...
note: Run with `RUST_BACKTRACE=1` for a backtrace.

그러나 출력에는 추적이 없습니다. 이제 변수가 설정되었는지 확인해 보겠습니다.

RUST_BACKTRACE=1 && echo $RUST_BACKTRACE && cargo run
1
...
note: Run with `RUST_BACKTRACE=1` for a backtrace.

최종 작업 솔루션은 다음과 같습니다.

RUST_BACKTRACE=1 cargo run

어떻게 작동하는지 설명해 주세요.

답변1

외부 프로그램이 해당 환경에서 이 변수를 볼 수 있는 방법에는 두 가지 가능성이 있습니다.

이 명령을 위해 내보내기

RUST_BACKTRACE=1 cargo run

이 경우 변수는 셸의 일부가 아닙니다. 이전이었다면 그 값은 변하지 않습니다.

수출하다

쉘은 모든 변수를 실행하는 프로그램으로 자동으로 내보내지 않습니다(모든 쉘 변수가 환경의 일부가 되는 것은 아닙니다).

  1. export RUST_BACKTRACE=1
    # or
    declare -x RUST_BACKTRACE=1
    cargo run
    
  2. RUST_BACKTRACE=1
    export RUST_BACKTRACE
    # or
    declare -x RUST_BACKTRACE
    cargo run
    
  3. set -a # Each  variable  or  function that is created or modified is given the export attribute
    RUST_BACKTRACE=1
    cargo run
    

관련 정보