.bashrc
কেবল ইন্টারেক্টিভ শেল দ্বারা পঠিত হয়। (আসলে, যে একটি অতিসরলীকরণ আছে: ব্যাশ এ ব্যাপারে করা বিচিত্র নয় ব্যাশ পড়া নেই। .bashrc
যদি এটি একটি লগ-ইন শেল এর, ইন্টারেক্টিভ বা না এবং সেখানে এমনকি ব্যতিক্রম একটি ব্যতিক্রম আছে:। যদি ব্যাশ এর অভিভাবক প্রক্রিয়া rshd
বা sshd
, তারপর ব্যাশ পড়া নেই .bashrc
, ইন্টারেক্টিভ হোক বা না হোক।)
আপনার ফাংশন সংজ্ঞাটি কোনও স্থানে কোনও ফাইলের মধ্যে রাখুন এবং সেই ফাইলটিকে স্ক্রিপ্টে অন্তর্ভুক্ত করতে .
(বানানযুক্ত source
) বিল্টিন ব্যবহার করুন ।
$ cat ~/lib/bash/my_functions.bash
foo () {
…
$ cat ~/bin/myscript
#!/bin/bash
. ~/lib/bash/my_functions.bash
foo bar
আপনি যদি চান, আপনি ksh এর অটোল্যাড বৈশিষ্ট্যটি অনুসরণ করতে পারেন। ফাংশন হিসাবে একই নামের একটি ফাইলে প্রতিটি ফাংশন সংজ্ঞা রাখুন। চলকটিতে ফাংশন সংজ্ঞা সম্বলিত ডিরেক্টরিগুলি তালিকাভুক্ত করুন FPATH
(ডিরেক্টরিগুলির একটি কোলন-বিচ্ছিন্ন তালিকা)। এখানে ksh এর একটি অপরিশোধিত অনুমান autoload
যা প্রকৃতপক্ষে অন-ডিমান্ডের পরিবর্তে ফাংশনটি লোড করে:
autoload () {
set -- "$(set +f; IFS=:;
for d in $FPATH; do
if [ -r "$d/$1" ]; then echo -E "$d/$1"; break; fi;
done)"
[[ -n $1 ]] && . "$1"
}