Bagaimana cara menambahkan ekspor ke ikan seperti di .bashrc?

50

Saya hanya ingin dapat menambahkan di dalam beberapa file konfigurasi ikan (tidak tahu yang mana / di mana) fungsi yang sama seperti ini:

export PERL5LIB=/home/iaco/workspace/perl:/home/iaco/devtools

Baris ini ditambahkan di dalam file .bashrc dan ia dapat mengekspor variabel setiap kali saya membuka terminal.

Apakah ada yang seperti itu untuk ikan? Saya tahu bahwa saya dapat mengekspor variabel dalam ikan menggunakan perintah "set", tetapi saya ingin memodifikasi satu file (tidak tahu yang mana) untuk secara otomatis menambahkan variabel-variabel itu setiap kali saya membuka terminal ikan.

Terima kasih atas waktunya!

Jorge Castro
sumber

Jawaban:

50

Anda dapat memasukkan konfigurasi ikan khusus pengguna, termasuk arahan set, di ~/.config/fish/config.fish. Isinya akan terlihat kurang lebih seperti itu

set -x PERL5LIB /home/iaco/workspace/perl:/home/iaco/devtools

Informasi lebih lanjut dapat ditemukan di dokumentasi .

Adam Byrtek
sumber
Terima kasih Adam. Tujuan utama dari perubahan ini adalah untuk dapat memasukkan di dalam Perl @inc path dari perpustakaan lokal saya. Setelah menambahkan garis yang Anda sarankan, ekspor dilakukan dengan benar! Tetapi, jika saya menjalankan perl -VI tidak akan melihat jalur baru. Saya tahu bahwa ini lebih merupakan pertanyaan Perl daripada yang ikan, tapi saya hanya ingin tahu apakah Anda (atau orang lain) punya ide
Saya harus menyebutkan -xbendera. Saya baru saja memperbarui jawabannya, dan Anda dapat membaca lebih lanjut tentang itu di bagian "Mengekspor variabel" dalam dokumentasi.
Adam Byrtek
1
Situs ikan utama sedang down, tetapi dokumentasi dari garpu ikan di ridiculousfish.com/shell/user_doc/html/commands.html#set (saya anggap sama).
Daniel James
Apakah ikan memiliki akses ke variabel lingkungan seperti $ PATH?
berikan tanggal
@grant ya, $PATHdll bisa digunakan pada ikan, termasuk di config.fish.
Scribblemacher
19

Gunakan variabel universal yang diperkenalkan pada ikan 2.0.0. -xberarti diekspor, dan -Uberarti diumumkan untuk setiap sesi ikan. Anda juga dapat menggunakan opsi panjang --exportdan --universal.

set -xU PERL5LIB /home/iaco/workspace/perl:/home/iaco/devtools

Harap dicatat bahwa PATHvariabel adalah sedikit kasus khusus. Meskipun PATHdapat diubah secara universal, ini akan memengaruhi variabel PATH Anda saat ini (yang mungkin sedikit masalah jika jalur tambahan akan diperkenalkan oleh sistem operasi). Untuk PATHvariabel, gunakan fish_user_pathsvariabel (yang hanya menambahkan jalur) sebagai gantinya. Variabelnya adalah array, yang berarti Anda tidak harus memasukkan :karakter.

set -U fish_user_paths /home/iaco/workspace/perl/share/bin /home/iaco/bin $fish_user_paths
Konrad Borowski
sumber
Ya kamu benar!
Nishant