আমার মধ্যে .profile
, আমি নীচের কোডটি ব্যাশ-সম্পর্কিত সম্পর্কিত উপকরণগুলি এবং ফাংশনগুলি কেবলমাত্র যদি লগইন শেলটি আসলে বাশ হয় তবে তা উত্সাহিত হয় তা নিশ্চিত করতে ব্যবহার করি :
# If the current (login) shell is Bash, then
if [ "${BASH_VERSION:-}" ]; then
# source ~/.bashrc if it exists.
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
আমি বর্তমানে আমার শেল কনফিগারেশন ফাইল, স্ক্রিপ্ট এবং ফাংশনগুলি সংস্করণ নিয়ন্ত্রণে রাখার প্রক্রিয়ায় আছি। আমিও সম্প্রতি শেল স্ক্রিপ্ট ব্যাশ-নির্দিষ্ট বৈশিষ্ট্য থেকে উপকৃত হবে না, যেমন থেকে নৈমিত্তিক Bashisms সরানোর প্রতিস্থাপন প্রক্রিয়া শুরু করেছি function funcname()
সঙ্গে funcname()
।
আমার শেল ফাইল সংগ্রহস্থলের, আমি একটি কনফিগার করেছেন প্রাক কমিট হুক যা রান checkbashisms
ডেবিয়ান এর থেকে উপযোগ devscripts প্যাকেজ প্রতিটি sh
সংগ্রহস্থলের মধ্যে ফাইল তা নিশ্চিত করার জন্য আমি অনবধানতাবশত ব্যাশ-নির্দিষ্ট সিনট্যাক্স পরিচয় করিয়ে না। তবে এটি আমার জন্য একটি ত্রুটি উত্থাপন করে .profile
:
possible bashism in .profile line 51 ($BASH_SOMETHING):
if [ "${BASH_VERSION:-}" ]; then
আমি ভাবছিলাম যে কোন শেলটি চলছে তা যাচাই করার কোনও উপায় আছে যা কোনও সতর্কতা ট্রিগার করবে না checkbashisms
।
আমি POSIX দ্বারা তালিকাভুক্ত শেল সম্পর্কিত ভেরিয়েবলগুলির তালিকাটি পরীক্ষা করেছিলাম এই আশায় যে তাদের মধ্যে একটি বর্তমান শেল প্রদর্শন করতে পারে। আমি একটি ইন্টারেক্টিভ ড্যাশ শেলের মধ্যে সেট ভেরিয়েবলগুলিও দেখেছি কিন্তু, আবার কোনও উপযুক্ত প্রার্থী খুঁজে পেতে ব্যর্থ হয়েছি।
এই মুহুর্তে, আমি .profile
প্রক্রিয়াজাতকরণ থেকে বাদ পড়েছি checkbashisms
; এটি একটি ছোট ফাইল তাই ম্যানুয়ালি এটি পরীক্ষা করা কঠিন নয়। তবে, বিষয়টি নিয়ে গবেষণা করে, আমি এখনও জানতে চাই কোন শেলটি চলছে কিনা তা নির্ধারণ করার জন্য (বা কমপক্ষে এমন কোনও উপায় যা checkbashisms
ব্যর্থ হওয়ার কারণ নেই ) কোনও পসিক্স অনুগত পদ্ধতি রয়েছে কিনা তা জানতে চাই ।
আরও পটভূমি / ব্যাখ্যা
আমি আমার শেল কনফিগারেশন ফাইলগুলিকে সংস্করণ নিয়ন্ত্রণের অধীনে রাখার একটি কারণ হ'ল আমি বর্তমানে নিয়মিত ভিত্তিতে লগ ইন করে থাকা সমস্ত সিস্টেমে আমার পরিবেশকে কনফিগার করা: সাইগউইন, উবুন্টু এবং সেন্টোস (উভয় 5 এবং 7) ব্যবহারকারীর জন্য অ্যাক্টিভ ডিরেক্টরি ব্যবহার করে প্রমাণীকরণ)। আমি প্রায়শই এক্স উইন্ডোজ / ডেস্কটপ পরিবেশ এবং দূরবর্তী হোস্টগুলির জন্য এসএসএইচ দিয়ে লগ ইন করি। তবে, আমি এটি ভবিষ্যতের প্রমাণ হতে চাই এবং যতটা সম্ভব সিস্টেম নির্ভরতা এবং অন্যান্য সরঞ্জামগুলির উপর নূন্যতম নির্ভরতা রাখি।
আমি checkbashisms
আমার শেল-সম্পর্কিত ফাইলগুলির সিনট্যাক্সের জন্য একটি সাধারণ, স্বয়ংক্রিয় বিচক্ষণতা পরীক্ষা হিসাবে ব্যবহার করছি । এটি কোনও নিখুঁত সরঞ্জাম নয়, উদাহরণস্বরূপ, আমি ইতিমধ্যে এটিতে একটি প্যাচ প্রয়োগ করেছি যাতে এটি command -v
আমার স্ক্রিপ্টগুলির ব্যবহার সম্পর্কে অভিযোগ না করে । গবেষণা করার সময়, আমি শিখেছি যে প্রোগ্রামটির আসল উদ্দেশ্য হ'ল ডেবিয়ান নীতিমালার সাথে সম্মতি নিশ্চিত করা যা আমি বুঝতে পেরেছি যে ২০০OS (বা এর ২০১৩ এর পুনর্বিবেচনা) এর চেয়ে পোসিক্স 2004 এর উপর ভিত্তি করে is
.bash_profile
উত্স .profile
এবং উভয় শর্তাধীন লিখুন .bashrc
।