実行ファイルを実行するには、まず下のbashファイルにあるすべての命令を実行しなければなりませんでした。端末で実行するには、4つのコマンドを実行して実行ファイルを実行します。in the same terminal
、なぜこれを行うのか、そしてbashファイルを実行してもコマンドを1つずつ実行するのと同じ効果が得られない理由は次のとおりです。
#!/bin/bash
export LD_LIBRARY_PATH=/repo/$USER/ncmain/out/rcpi/ITC_CXA11466/x86/lib
export ITC_RUNDIR_PATH=/local/scratch/$USER/itc/
export ITC_INSTANCE_NAME=itc_$USER
/local/scratch/ehhozzo/RCS_ROOT/software/itcworld
答え1
「source
うまくいくが、なぜ?」 - 環境変数を設定するスクリプトを実行すると、デフォルトでサブシェルが起動します。新しく設定された変数が必ずしも最上位シェルに返されるわけではありません。スクリプトを作成するときにサブシェルsource
を起動するのではなく、現在のシェルでコマンドを実行するようにシェルに指示するため、新しく設定された変数は予想シェルになります。