Pertanyaan .bash_profile tidak dibaca


Jadi saya menggunakan CentOS 6.3 instalasi baru dan saya mencoba menambahkan hal-hal ke jalur saya untuk OpenMPI jadi saya mengedit file .bash_profile saya untuk dibaca:

FOO='test'
export FOO

# Add support for MPI
PATH=$PATH:/usr/lib64/openmpi/bin

# User specific environment and startup programs

PATH=$PATH:$HOME/bin




export PATH

Yang tampaknya tidak dibaca ketika saya memulai shell bash, $ PATH saya tanpa jalur / usr / lib64 / openmpi / bin dan FOO tidak ada ketika saya mencoba echo $FOO

.bashrc dibaca baik-baik saja dan jika saya lakukan source ~/.bash_profile FOO dibuat serta $ PATH saya sedang diedit dengan benar tetapi itu tidak akan berjalan .bash_profile sendiri jadi jika saya bisa mendapatkan bantuan yang akan menjadi besar.


5
2017-12-11 06:45






Jawaban:


Bisakah Anda menjelaskan bagaimana Anda menguji 2 file ini? Apakah Anda mencoba login atau shell non-login? Inilah bedanya:

Saat Anda masuk ke sistem dan melihat perintah baris perintah, ini adalah shell login, dan mengeksekusi file-file ini secara berurutan:

/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc

Shell non-login hanya akan menjalankan dua file dalam urutan:

/etc/bashrc
~/.bashrc

Jika Anda hanya memulai shell bash dengan "bash", itu adalah shell non-login dan ~ / .bash_profile tidak akan dipanggil. Jika Anda mengharapkan variabel yang akan diatur bahkan ketika menjalankan shell non-login, Anda harus memasukkannya ke dalam ~/.bashrc.


13
2017-12-11 07:21



Itu tidak mengeksekusi .bashrc jika .bash_profile tidak mengatakan demikian. Di sistem saya, untuk akun saya, .bash_profile tidak ada, jadi .bashrc tidak pernah dieksekusi. - SPRBRN


Ini adalah normal, .bash_profile bersumber untuk shell login, .bashrc yang bersumber untuk shell non-login interaktif. Di CentOS bagian atas .bash_profile biasanya memiliki:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

Jadi Anda bisa memasukkan semuanya ke dalam .bashrc.

Mac OS X Terminal membaca .bash_profile saat Anda membuka jendela baru. gnome-terminal dapat dibuat untuk melakukannya Jalankan perintah sebagai shell login.


4
2017-12-11 07:20