.bashrc 構文エラー: 予期しないファイルの終わり

.bashrc 構文エラー: 予期しないファイルの終わり

端末を実行するたびに、「.bashrc構文エラー:予期しないファイルの終わり」というエラーメッセージが表示されます。

だから私は問題を理解するためにその一部に言及し始めました。おそらく以下のif条件にあるようです。動作するように編集する方法を知りたいです。

if ("1" == "$?LD_LIBRARY_PATH") then
        if ("$LD_LIBRARY_PATH" !~ */usr/local/iscir/lib*) then
                export LD_LIBRARY_PATH /usr/local/iscir/lib:$LD_LIBRARY_PATH
        endif
else
        export LD_LIBRARY_PATH /usr/local/iscir/lib
endif

私はこれを試しましたが、成功しませんでした。

if ["1" == "$?LD_LIBRARY_PATH"]; then
        if ["$LD_LIBRARY_PATH" !~ */usr/local/iscir/lib*]; then
                export LD_LIBRARY_PATH /usr/local/iscir/lib:$LD_LIBRARY_PATH
        fi
else
        export LD_LIBRARY_PATH /usr/local/iscir/lib
fi

ベストアンサー1

endifバッシュにはありません。声明はifで終わりますfi。また[ ]、テスト構成を使用する場合、正規表現一致[演算子はPOSIXの代わりに=~bashの特殊記号を必要とし、一致を無効にするには使用できない完全なテスト()を無効にする必要があります。 、シェルグローブの代わりに。したがって、それ自体には意味がなく、「すべての文字」が必要です。その後、変数を設定してエクスポートする形式は、であり、との間に偽があります。だからこれを試してみてください:[[ ]][ ][[ ! foo ~ bar ]]!~*.*export foo=bar?$LD_LIBRARY_PATH

if [ "1" == "$LD_LIBRARY_PATH" ]; then
    if [[ ! "$LD_LIBRARY_PATH" =~ .*/usr/local/iscir/lib.* ]]; then
        export LD_LIBRARY_PATH="/usr/local/iscir/lib:$LD_LIBRARY_PATH"
    fi
else
    export LD_LIBRARY_PATH="/usr/local/iscir/lib"
fi

これはうまくいくはずですが、すべてが理解できません。いつLD_LIBRARY_PATHですか1?私はこれがどのように行われるのか本当に理解していません。まだ存在しない/usr/local/iscir/lib場合に追加したい場合は、次のようにします。LD_LIBRARY_PATH

if [ -z "$LD_LIBRARY_PATH" ]; then
    export LD_LIBRARY_PATH="/usr/local/iscir/lib"
elif [[ ! "$LD_LIBRARY_PATH" == */usr/local/iscir/lib* ]]; then
    export LD_LIBRARY_PATH="/usr/local/iscir/lib:$LD_LIBRARY_PATH"
fi

おすすめ記事