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

外部プログラムがその環境でこの変数を表示できる方法には2つの可能性があります。

このコマンドのエクスポート

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
    

おすすめ記事