Saya mencoba menggunakan eshell di dalam emacs, jadi saya tidak perlu beralih antara emacs dan terminal. Saat menggunakan bash, saya memiliki beberapa skrip bash yang biasanya saya sumber untuk mengekspor beberapa variabel env (untuk beralih di antara berbagai versi pahat dan lingkungan build). Apakah mungkin untuk mengeksekusi skrip saya dengan bash, dan menempatkan ekspor (atau beberapa di antaranya) dalam eshell.
Pada dasarnya saya mencoba untuk mendapatkan bash-script di eshell.
Apakah ada cara untuk melakukan hal seperti itu?
Jawaban:
Saya pikir, saya menemukan cara. Saya telah membuat
my-init.el
skrip dengan konten ini:Ketika bersumber dari dalam eshell, itu akan memulai bash, sumber di
my-init.sh
sana (dengan demikian mengaturMY_ENV
variabel), dan kemudian memanggilenv
untuk mendapatkanMY_ENV
, dan mengubahnya dengansed
sesuatu seperti(setenv "MY_VAR" "value")
yang bersumber dari eshell asli.Tidak cantik, tetapi berhasil!
sumber
Ini tampaknya menjadi kesalahpahaman umum karena beberapa alasan, tetapi "sumber" tidak berarti "menetapkan beberapa variabel"; itu berarti (dalam konteks sh) "jalankan perintah dalam file ini dalam konteks saat ini". Oleh karena itu, jawaban atas pertanyaan "dapatkah saya sumber file bash dalam program yang menggunakan beberapa bahasa lain yang tidak kompatibel?" adalah tidak ada .
sumber