আমি এখনই নীচে দেওয়া একটি কমান্ড পেয়েছি -
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
আমি যা অনুমান করতে পারি, এটি সম্ভবত .bash_profile এ পরিবর্তনগুলি করার জন্য ব্যবহৃত হয় তবে এটি ঠিক কী জন্য ব্যবহৃত হয়?
আমি এখনই নীচে দেওয়া একটি কমান্ড পেয়েছি -
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
আমি যা অনুমান করতে পারি, এটি সম্ভবত .bash_profile এ পরিবর্তনগুলি করার জন্য ব্যবহৃত হয় তবে এটি ঠিক কী জন্য ব্যবহৃত হয়?
উত্তর:
এটি প্রোগ্রামের >>
স্টাডাউটটিকে পূর্বে পুনঃনির্দেশ করে এবং পরে প্রদত্ত ফাইলে এটি সংযোজন করে।
>> file command
echo a b >> c d
যোগ হবে a b d
নামে একটি ফাইলে c
।
>>
?এর সাহায্যে >>
আপনি একটি ফাইলের সাথে কমান্ডের আউটপুট যুক্ত করতে পারেন।
আপনার উদাহরণ কমান্ডটি মূলত:
কমান্ড >> ফাইলের নাম
সুতরাং আউটপুট command
যুক্ত করা হবে filename
।
echo
?আপনার নির্দিষ্ট ক্ষেত্রে, echo "…"
কমান্ডটি তার ইনপুট আর্গুমেন্টগুলিকে "stdout" এ আউটপুট করে, যা তথাকথিত "স্ট্যান্ডার্ড আউটপুট বর্ণনাকারী"। ইনপুট আর্গুমেন্টগুলি echo
একটি নতুন লাইন ( \n
) অনুসরণ করা হয় , যাতে আপনি একটি লাইন ব্রেক পান।
এখানে, একটি "স্ট্যান্ডার্ড আউটপুট বর্ণনাকারী" কোনও আউটপুট স্ট্রিম ছাড়া আর কিছু নয় যা আপনার কমান্ড কার্যকর করার সময় আপনার শেলের মধ্যে প্রদর্শিত হয়। (এটি যখন আপনি টাইপ করুন echo foo
এবং এন্টার টিপুন তখন হ'ল কমান্ডের foo\n
আসল আউটপুট echo
, যা আপনার শেল foo
দ্বারা একটি নতুন লাইন অনুসরণ করে প্রদর্শিত হবে ))
মূলত আপনার কমান্ড লাইনে যে কিছু লেখেন তা স্টডআউট ব্যবহার করে। "স্ট্ডার" নামে আরও একটি বর্ণনাকারী রয়েছে যা সাধারণত ত্রুটি বার্তাগুলির জন্য ব্যবহৃত হয়। এটি স্টাডআউটের মতোও মুদ্রিত হবে, যাতে কখনও কখনও তারা ছেদ করা যায়। এবং একটি স্টিডিন বর্ণনাকারী রয়েছে যা ইনপুট জন্য ব্যবহৃত হয়। আরও তথ্যের জন্য এই নিবন্ধটি দেখুন ।
আপনি স্টডআউটকে সর্বদা একটি ফাইল বর্ণনাকারীর দিকে পুনর্নির্দেশ করতে পারেন, যা আপনি এই অপারেটরগুলির একটির সাথে করতে পারেন:
>
একটি ফাইল বর্ণনাকারী পুনর্নির্দেশ। এটি উপস্থিত না থাকলে ফাইল তৈরি করে বা এটি ইতিমধ্যে উপস্থিত থাকলে, লেখার আগে ফাইলটি কেটে দেয়। ফাইলটি stdout দিয়ে ওভাররাইট করা হবে।
>>
একটি ফাইল বর্ণনাকারী সংযোজন। এটি উপস্থিত না থাকলে ফাইলটি তৈরি করে।
আপনি স্টাডারকে একইরকম ফ্যাশন ব্যবহার করে 2>
বা পুনর্নির্দেশ করতে পারেন 2>>
। অথবা আপনি স্টাডার এবং স্টডআউটকে একটি ফাইলে একত্রিত করতে পারেন: 2>&1
এটি করে। পুনঃনির্দেশ সম্পর্কে আরও তথ্যের জন্য এবং আরও কয়েকটি উদাহরণের জন্য, আপনি এই ছোট টিউটোরিয়ালটি পড়তে পারেন ।
সাধারণত, আপনি ব্যাখ্যা শেল ডট কম চেষ্টা করতে পারেন , যা আপনাকে একটি নির্দিষ্ট শেল কমান্ড সম্পর্কে চাক্ষুষ নির্দেশনা এবং তথ্য দেবে।
জন্য TLDR মানুষ শুধু একটি উদাহরণ দেখতে চান যারা;
>> এর আগে কমান্ডের স্ট্যান্ডার্ড আউটপুট (ত্রুটি নয়) এর নামের শেষে ফাইলটির শেষে যুক্ত হবে।
সুতরাং যদি "flintstones.txt" ফাইল থাকে;
Fred
Barney
echo Dino >> flintstones.txt
ফাইলের শেষে 'ডাইনো' যুক্ত হওয়ার ফলস্বরূপ;
Fred
Barney
Dino
echo Dino > flintstones.txt
এর লিখিত সামগ্রীগুলিকে Dino
একক ডান তীরের সাহায্যে করা সহজভাবে প্রদর্শিত হবে show
আবার, আপনি যদি
> somefile.txt
ফাইলটির সম্পূর্ণ সামগ্রী সাফ হয়ে যাবে।
> file
ফাইলটি সাফ করে তবে >> file
কিছুই করে না।
man bash
বেশ আনুষ্ঠানিক ভাষায় রচিত, এটি বুঝতে অসুবিধা হতে পারে। অন্যদিকে বাক্যাংশটিbash >>
গুগলে কয়েকটি দরকারী লিঙ্ক দেয়। এটি সত্য যে আমরা গুগলের উপর নির্ভর না করে জ্ঞানকে একত্রিত করতে চাই; এই কারণে সহজে অনুসন্ধানযোগ্য উত্তর সহ একটি প্রশ্নও ফিট করতে পারে। তবে আপনি যে মুহূর্তে উত্তর সরবরাহ করেননি তা এখনই (দেখুন আমি কি আমার নিজের প্রশ্নের উত্তর দিতে পারি? ) বা বিদ্যমান সংস্থানগুলিতে ইঙ্গিত করা হয়নি (যে সম্ভবত আপনার বোঝার জন্য সহায়তা প্রয়োজন) গবেষণার অভাবকে নির্দেশ করে।