Setiap kali saya membuka tab baru di Terminal menggunakan Cmd+ T, itu membuka bash di direktori yang sama, seperti tab sebelumnya. Ini berfungsi dengan baik ketika saya berada di ~
direktori, tetapi jika saya berada di tempat lain, saya mendapatkan kesalahan saat memuat.bashrc
Last login: Sat Oct 15 21:10:00 on ttys002
-bash: .bashrc: No such file or directory
Jakub-Arnolds-MacBook-Pro:projects darth$
Sepertinya .bashrc
dimuat melalui jalur relatif dan tidak absolut, karena jika saya lakukan source ~/.bashrc
, semuanya bekerja dengan lancar.
Saya pikir ini adalah masalah terkait OS X Lion, karena sebelum upgrade dari Snow Leopard, saya tidak memiliki masalah yang sama. Tapi itu mungkin disebabkan oleh Terminal selalu terbuka di ~
, saya tidak ingat jika mencoba membuka direktori yang sama.
Namun pertanyaannya tetap sama, bagaimana saya bisa membuat Terminal memuat ~/.bashrc
melalui jalur absolut, dan bukan relatif?
Jawaban:
Terminal membuka shell login. Ini berarti,
~/.bash_profile
akan dieksekusi,~/.bashrc
bukan.Solusi pada kebanyakan sistem adalah "membutuhkan"
~/.bashrc
di~/.bash_profile
: cukup taruh cuplikan ini di~/.bash_profile
:sumber
[[ -s /file/path ]]
dilakukannya? Mencoba ke Google untuk penjelasan tidak terlalu mudah.man bash
: -s file True jika file ada dan memiliki ukuran lebih besar dari nol.man bash
) membicarakannya dan menjelaskannya, bab INVOCATION (hanya mencariINVOCATION
setelah meneleponman bash
dengan mengetik/INVOCATION
)Mengganti nama
.bashrc
menjadi.profile
(atau menautkan yang terakhir dengan yang pertama) juga harus melakukan trik. Lihat di sini .sumber
cd && ln -s ./.bashrc ./.profile
Perhatikan bahwa symlink sensitif terhadap path file, saya percaya bahwa menggunakan sintaks di atas berfungsi, tetapi untuk memastikan Anda dapat menggunakan path absolut dalam kasus apa pun..profile
Anda akan mematahkan regulersh
.Saya memiliki yang berikut ini di
~/.bash_profile
:Jika
.bashrc
bukan~/.bashrc
, saya akan melihat gejala yang sama yang Anda lihat.sumber