পুরানো সংজ্ঞা অনুসারে কোনও বাশ ফাংশন নতুন করে সংজ্ঞায়িত করার উপায় আছে কি? উদাহরণস্বরূপ, আমি ফাংশনটির উপস্থাপিতে নিম্নলিখিত কোডের ব্লকটি যুক্ত করতে চাই command_not_found_handle ()
,
# Check if $1 is instead a bash variable and print value if it is
local VAL=$(eval echo \"\$$1\")
if [ -n "$VAL" ] && [ $# -eq 1 ]; then
echo "$1=$VAL"
return $?
fi
এটি বর্তমানে /etc/profile.d/PackageKit.sh এ সংজ্ঞায়িত করা হয়েছে এবং ব্যাশ স্টার্ট-আপ স্ক্রিপ্টগুলির দ্বারা উত্সাহিত।
এইভাবে আমি কমান্ড প্রম্পটে এনভায়রনমেন্ট ভেরিয়েবলের মানটি জিজ্ঞাসা করতে পারি কেবলমাত্র ভেরিয়েবলের নামটি টাইপ করে (এবং এই নাম দিয়ে এই জাতীয় কোনও কমান্ড উপস্থিত নেই)। যেমন
user@hostname ~:$ LANG
LANG=en_AU.utf8
আমি জানি যে আমি কেবল বর্তমান সংজ্ঞাটি অনুলিপি করে আটক করতে পারি এবং এতে আমার নিজস্ব পরিবর্তনগুলি যুক্ত করতে পারি ~/.bashrc
, তবে আমি কোডটি পুনরায় ব্যবহারের সাথে জড়িত আরও মার্জিত উপায়ের জন্য সন্ধান করছি।
আমার লক্ষ্য অর্জনের আরও ভাল উপায় বা কোড উন্নতি / এক্সটেনশনগুলিও প্রশংসিত।
eval
, আপনি local VAL=$(echo ${!1})