Bashスクリプトがパスを正常にエクスポートできないのはなぜですか?

Bashスクリプトがパスを正常にエクスポートできないのはなぜですか?

一部のCコードを正しくコンパイルするには、特定のファイルを見つけるためにフォルダをエクスポートする必要があります。

コマンドラインで初めて実行したとき

export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH

これにより、Cコード実行可能ファイルが機能します。をエクスポートしないと、LD_LIBRARY_PATHCパッケージが必要なファイルを見つけることができないため、実行可能ファイルは失敗します。

exectuable: error while loading shared libraries: file1.so: cannot open shared object file: No such file or directory

ここでbashスクリプトでこのコードを実行したいと思います。これは私のbashスクリプトですrun_stuff.sh

#!/bin/bash

source ~/.bash_profile

export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH

path/to/executable/executable 

上記のエラーにより、この操作は失敗します。私はそれ以来試しました

echo "export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH"

私が追加したbashスクリプトから

export LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH

以内に~/.bash_profile。それでも動作しません。 Cコードがファイルを見つけることができません。

bashスクリプトからフォルダを正しくエクスポートする方法は?

ベストアンサー1

1

国内にエクスポートできます。

#!/bin/bash

LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH path/to/executable/executable 

使用はプロセスのVARを設定してエクスポートしますVAR=value cmdcmd

2

2段階にエクスポート

#!/bin/bash

LD_LIBRARY_PATH=/bin/path../version/:$LD_LIBRARY_PATH 
export LD_LIBRARY_PATH

path/to/executable/executable 

これが私がシナリオでやった方法です。 (これはマニュアルページの内容と矛盾します。)

エクスポート[-fn] [名前[=単語]] ...

変数名の後に= wordが続く場合、変数の値はwordに設定されます。

おすすめ記事