(Saya sedang berbicara tentang Ikan kerang , terutama Ikan Ikan .)
Untuk Bash / ZSH, saya memiliki ~/.profile
beberapa ekspor, alias, dan hal-hal lainnya.
Saya tidak ingin memiliki konfigurasi terpisah untuk variabel lingkungan untuk Fish, saya ingin menggunakan kembali ~/.profile
. Bagaimana?
Dalam FAQ, dinyatakan bahwa saya setidaknya dapat mengimpornya melalui /usr/local/share/fish/tools/import_bash_settings.py
, namun saya tidak begitu suka menjalankannya untuk setiap instance Ikan.
usermod -s /usr/local/bin/fishlogin $USER
adalahchsh -s /usr/local/fishlogin $USER
chsh: /usr/local/bin/fishlogin: non-standard shell
perlu menambahkannya ke/etc/shells
fish "$@"
harus diganti denganexec -l fish "$@"
.exec
menggantikan proses bash dengan ikan, sementara-l
menyebabkanargv[0]
untuk ikan-fish
, yang menandakan bahwa ini adalah shell login.Solusi saya saat ini (lihat di sini untuk versi yang mungkin lebih baru):
sumber
Untuk solusi yang jauh lebih bersih, Anda dapat menggunakan plugin env asing :
sumber
Anda dapat menggunakan bass , sebuah plugin untuk menjalankan perintah bash pada fish.
Pasang bass .
Dan kemudian, letakkan ini di
config.fish
:sumber
.profile
yang memiliki terlalu banyak hal yang terjadi.bass
di sisi lain menafsirkan skrip bash shell, dan membuatnya berjalan di ikan. Ini tentu akan memiliki overhead yang sedikit lebih banyak, tetapi benar-benar diabaikan dalam pengalaman saya, tetapi jarak tempuh Anda dapat bervariasi.Saya mencoba mencari. Profil pada startup ikan dan itu bekerja seperti pesona bagi saya.
lakukan saja :
Mulai ulang terminal atau iterm2, uji alias dari
.profile
untuk menguji.Catatan: Tidak akan bekerja dengan file profil. Lebih kompleks yang menggunakan sintaksis tidak tersedia di ikan - kredit @erb
sumber
.profile
file yang lebih kompleks yang menggunakan sintaksis tidak tersedia di fish.Pasang
dash
dan tambahkan baris ini keconfig.fish
:sumber
dash
- hanyash
akan melakukan (yang mungkin dasbor)Kamu tidak bisa
fish
Sintaksnya terlalu berbeda dari/bin/sh
sintaks Bourne shell ( ). Ini adalah alasan yang sama yang tidak dapat Anda gunakan.profile
dengan cangkang non-Bourne lainnya, seperticsh
dantcsh
.sumber
.profile
. Saya hanya ingin mendapatkan semuaexport
dari sana. Satu cara mudah adalah dengan caraegrep "^export"
yang sudah cukup baik bagi saya. Solusi lain yang lebih tepat adalah ini . Juga, saya misalnya dapat menjalankanimport_bash_settings.py
skrip ini yang mungkin melakukan hal serupa. Jadi, jelas ada banyak cara untuk melakukan ini. Dengan pertanyaan saya di sini, saya bertanya-tanya bagaimana orang lain bisa menyelesaikan ini.Jika distribusi Anda menggunakan PAM , Anda bisa mengatur variabel lingkungan Anda di
~/.pam_environment
file Anda .sumber
Anda dapat memulai Fish dari Bash. Jika Anda melakukannya, Fish akan mewarisi semua variabel lingkungan (
export FOO=bar
) dari Bash. Pada titik ini, Bash sudah akan membaca.profile
(atau sejenisnya) Anda.sumber