কার্যকারণ হিসাবে নিম্নলিখিতটি ব্যবহার করা যেতে পারে (লিনাক্স, ব্যাশ):
printenv -0 > env.txt
বাশ টার্মিনাল উইন্ডো থেকে প্রথমে রান করুন ,
- তারপরে ইমাক্সের মধ্যে থেকে চালান
(defun my-update-env ()
(interactive)
(let ((str
(with-temp-buffer
(insert-file-contents "env.txt")
(buffer-string))) lst)
(setq lst (split-string str "\000"))
(while lst
(setq cur (car lst))
(when (string-match "^\\(.*?\\)=\\(.*\\)" cur)
(setq var (match-string 1 cur))
(setq value (match-string 2 cur))
(setenv var value))
(setq lst (cdr lst)))))
হালনাগাদ
আমি দেখাচ্ছি যে কমান্ডের --eval
বিকল্পটি ব্যবহার করে এটি আরও মার্জিতভাবে করা যেতে পারে emacsclient
: বাশ স্ক্রিপ্ট সংজ্ঞায়িত করুন update_emacs_env
:
#! /bin/bash
fn=tempfile
printenv -0 > "$fn"
emacsclient -s server_name -e '(my-update-env "'"$fn"'")' >/dev/null
server_name
আপনার ইমাক্স সার্ভারের নাম কোথায় এবং my-update-env
এটি আপনার ~/.emacs
ফাইল দ্বারা সংজ্ঞায়িত একটি ফাংশন :
(defun my-update-env (fn)
(let ((str
(with-temp-buffer
(insert-file-contents fn)
(buffer-string))) lst)
(setq lst (split-string str "\000"))
(while lst
(setq cur (car lst))
(when (string-match "^\\(.*?\\)=\\(.*\\)" cur)
(setq var (match-string 1 cur))
(setq value (match-string 2 cur))
(setenv var value))
(setq lst (cdr lst)))))
update_emacs_env
ইমাস এনভায়রনমেন্ট ভেরিয়েবল আপডেট করার জন্য আপনি এখন শেল কমান্ড লাইন থেকে টাইপ করতে পারেন ..