エクスポートPATH CentOSを使用した奇妙な動作

エクスポートPATH CentOSを使用した奇妙な動作

PATH次の場所にある2つの異なるスクリプトで変数を変更しようとしています。/etc/profile.d/

  • /etc/profile.d/php.sh

    #!/bin/sh
    PATH=$PATH:/usr/local/php/bin
    export PATH
    
  • /etc/profile.d/mysql.sh

    #!/bin/sh
    PATH=$PATH:/usr/local/mysql/bin
    export PATH
    

CentOSを再起動してPATH変数(編集済み)を確認しましたが、$ PATHが2回修正されました!

[]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:
/usr/local/mysql/bin:/usr/local/php/bin:/home/IntUser/bin:/usr/local/mysql/bin:
/usr/local/php/bin
[]$ 

ルートモードで:

[]$ su
Password: 
[]# 

$ PATHが3回修正されました!

[]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:
/usr/local/mysql/bin:/usr/local/php/bin:/home/IntUser/bin:/usr/local/mysql/bin:
/usr/local/php/bin:/usr/local//mysql/bin:/usr/local/php/bin
[]# 

一度だけ割り当てたらどうでしょうか?

ベストアンサー1

問題を解決する方法は次のとおりです。/etc/profile.d/php.shファイルの内容を次のように置き換えます。

pathmunge /usr/local/php/bin after

ファイルも同じです/etc/profile.d/mysql.sh

pathmunge /usr/local/mysql/bin after

説明は/etc/profile.d/*.shのファイルです源泉/etc/profile(bashシェルにログインして得たもの)。

これらのファイルはソースとして提供されるため、/etc/profileファイル内のすべての変数と関数を使用できます。これは、まだ存在していないpathmungeディレクトリに新しいディレクトリを追加することが唯一の目的である(私のFedora 20の)機能です。PATHこのキーワード afterPATH

これにより重複は発生しません。しかし、なぜあなたがそれを持っているのかわかりません。

おすすめ記事