উত্তর:
আপনার টার্মিনালটি একটি শেল চালায় (সম্ভবত সম্ভবত bash
), এটিই আপনার আদেশগুলি জিজ্ঞাসা করে এবং সেগুলি চালায়।
এই ইন্টারেক্টিভ মোড ছাড়াও আপনি কোনও ফাইল থেকে কমান্ড চালাতে আপনার শেলটি ব্যবহার করতে পারেন। আপনার ফাইলে কমান্ডগুলি কার্যকর করতে আপনি শেলটিকে সরাসরি পছন্দ bash script
করতে পারেন অথবা আপনি একটি "শেবাং" দিয়ে আপনার ফাইলটি শুরু করতে পারেন #!/bin/bash
এবং এটি কার্যকর করতে ( chmod +x script
) কার্যকর করতে পারেন । তারপরে আপনি স্ক্রিপ্টটিকে বাইনারিগুলির মতো আচরণ করতে পারেন এবং উদাহরণস্বরূপ এটি কার্যকর করতে পারেন ./script
বা আপনি যেখানে শেলটি খুঁজছেন সেখানে এটি স্থাপন করতে পারেন। ( echo $PATH
)
সম্ভবত আপনার ইন্টারেক্টিভ শেল এবং চালানোর জন্য ব্যবহৃত শেল উভয়ই bash
। "প্রথম দিন শেখার লিনাক্স" এর দৃষ্টিকোণ থেকে বাশ উভয় মোডে ঠিক একই রকম কাজ করে। - অনেক পরে আপনি সামান্য পার্থক্য সম্পর্কে হোঁচট খেতে পারেন। আপনি যদি সত্যিই বিস্তারিতভাবে জানতে চান তবে আমি man bash
"ইন্টারেক্টিভ" উল্লেখ করে স্থানগুলি পড়ার এবং অনুসন্ধান করার পরামর্শ দেব । (আপনি চেপে কোনও ম্যান পেজ সন্ধান করতে পারেন /
))
একটি গুরুত্বপূর্ণ বিষয় লক্ষণীয় হ'ল স্ক্রিপ্টটি একটি নতুন প্রক্রিয়া হিসাবে চালিত হয়। এর বিশেষত অর্থ হ'ল স্ক্রিপ্টে সেট করা ভেরিয়েবলগুলি কলিং শেলটিতে দৃশ্যমান নয়।
$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$
রফতানি ব্যতীত a
অভ্যন্তরীণ লিপিটিও দৃশ্যমান হয় না।
সাধারণভাবে, উত্তরটি "না" হবে, শেলের কমান্ডগুলি স্ক্রিপ্টগুলিতে, সিনট্যাক্স এবং শব্দার্থবিজ্ঞানের ক্ষেত্রে একই।
তবে পরিবেশের কনফিগারেশনের সাথে সম্পর্কিত কিছু সংক্ষিপ্ত সূক্ষ্মতা রয়েছে (কোন ভেরিয়েবলগুলি ব্যবহৃত হয় এবং সেগুলি কী সেট হয়)।
Linux এর জন্য পছন্দের ইন্টারেক্টিভ শেল ব্যাশ, কিন্তু স্ক্রিপ্টিং প্রায়ই অন্যান্য দোভাষী ব্যবহার ( sh
যার মধ্যে একটি পূর্বসুরী হয় bash
, ksh
যা ব্যাশ সঙ্গে সমাবস্থা হয়), তাই আপনি কি শেল ব্যবহার করা হয় একাউন্টে নিতে হবে (বর্তমান শেল নাম traditionতিহ্যগতভাবে পরিবর্তনশীলতে রাখা হয় SHELL
, টাইপ করার চেষ্টা করুন echo $SHELL
)।
ইন্টারেক্টিভ সেশনের জন্য এবং স্ক্রিপ্ট প্রয়োগের জন্য একই দোভাষী সংযোগের ক্ষেত্রে পার্থক্য থাকতে পারে।
স্ক্রিপ্ট হ'ল কমান্ডগুলির একটি তালিকা যা আপনি টার্মিনালে টাইপ করতে পারেন।
আপনি টার্মিনালে কোনও স্ক্রিপ্টের সম্পূর্ণতা পেস্ট করতে পারেন এবং ফলাফলটি এটি চালানোর মতো হবে।
বিপরীতভাবে, আপনি কোনও ফাইলের ভিতরে আপনার টার্মিনাল কমান্ডগুলি "সংরক্ষণ" করতে পারেন এবং এটিকে পুনরায় ব্যবহারযোগ্য স্ক্রিপ্টে পরিণত করতে পারেন এবং এটি আপনার পরিবার এবং বন্ধুদের সাথে ভাগ করে নিতে পারেন।
source script_file
। যা বর্তমান প্রসঙ্গে ENV vars সম্পাদনা করবে। স্ক্রিপ্টটি চালনার সময় যেমন ./script_file
ENV পরিবর্তন করবে না, যদি না export
স্পষ্টভাবে ব্যবহৃত হয়।
export
স্ক্রিপ্টের পক্ষে কলিং শেলের যে কোনও ভেরিয়েবল সংশোধন করা সম্ভব নয়। পিডাব্লুডি, সংজ্ঞায়িত উপকরণ, ফাংশন এবং এর মতো জিনিসগুলির ক্ষেত্রেও একই জিনিস রয়েছে। এগুলি কেবল ইন্টারেক্টিভ বা একটি ফাইল সোর্স করে পরিবর্তন করা যেতে পারে। তবে হ্যাঁ, এটি সম্ভবত প্রথম দিনেই কেউ হোঁচট খাবে না। :)