কোনও ফাইলের সামগ্রীতে শেল ভেরিয়েবল সেট করার কি কোনও দুর্দান্ত উপায় আছে?


11

বলুন আমার কাছে একটি ফাইলে কিছু কনফিগারেশন ডেটা রয়েছে config। সুবিধার জন্য, আমি এই ডেটাটি শেল ভেরিয়েবলের মধ্যে লোড করতে চাই CONFIG_DATA

অবশ্যই আমি এটা করতে পারি:

CONFIG_DATA="$(cat config)"

তবে এই ধরনের আমার কাছে অযথা ব্যবহারেরcat মতো মনে হচ্ছে । এটি কি এই একমাত্র উপায়? বা এটি করার আরও কি মার্জিত উপায় আছে?

উত্তরগুলির পসিক্স পছন্দ করা উচিত তবে কোনও শেল ব্যবহার করতে পারে।


2
মেমরির মতো একটি সম্পূর্ণ ফাইলটি পড়া প্রায়শই একটি খারাপ ধারণা, আপনি এটি লিখুন না কেন।
স্যাট কাটসুরা

2
@ স্যাটোক্যাটসুরা কিছু ক্ষেত্রে খুব সত্য। তবে এই প্রশ্নের উদ্দেশ্যে, আপনি ধরে নিতে পারেন যে ফাইলটি অতি ক্ষুদ্র, সুতরাং এটি কোনও বড় সমস্যা নয়।
strugee

1
@ স্যাটোক্যাটসুরা: কেন?
রিমকো জারলিচ

উত্তর:


23

বাশ এবং জেড শেলের মধ্যে অন্তত একটি দ্রুততর উপায় রয়েছে:

CONFIG_DATA=$(<config)

বোর্ন অ্যাগেইন শেলের ম্যান পৃষ্ঠা থেকে উদ্ধৃতি দিতে:

কমান্ড প্রতিস্থাপন $ (বিড়াল ফাইল) সমতুল্য কিন্তু দ্রুত $ (<ফাইল) দ্বারা প্রতিস্থাপন করা যেতে পারে।


1
আমি এটি একটি ভাল বিকল্প বিবেচনা করব না। বিড়ালের অপ্রয়োজনীয় ব্যবহারের বিষয়ে ওপির অনুভূতি যাই হোক না কেন, ওপির উদাহরণটি এত সহজ যে বেশিরভাগ বাশ ব্যবহারকারী এটি বুঝতে পারে। এটিও বেশ বহনযোগ্য। এখন $(<file)অনেক কম সাধারণ, তাই এর ফলে ডাব্লুটিএফ আরও অনেক কিছু হতে পারে; এবং এই অপারেশন থেকে গতি বৃদ্ধি, যদি এই ধরণের কনফিগারেশনটি কোনও ভেরিয়েবলের জন্য লোড করা হয় তবে সম্ভবত তা নগণ্য
ম্যাথিউরক

6
@ ম্যাথেররোক লক্ষ করুন যে প্রচুর খারাপ অভ্যাসগুলি প্রচলিত এবং পরিচিত। বিড়ালের অকেজো ব্যবহারগুলি একটি উদাহরণ, for i in $(cat file); do ...অন্যটি। এগুলি সাধারণ যে খারাপ সরঞ্জামগুলি ব্যবহার করার কোনও কারণ নেই। কোনটি বলার অপেক্ষা রাখে না যে বিড়ালের এই বিশেষ ব্যবহারটি খুব খারাপ, কেবল এটি সাধারণ এবং পরিচিত! = ভাল বলছি।
টেরডন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.