উত্তর:
সেই প্রসঙ্গে একটি বিন্দুর অর্থ বর্তমান শেলটিতে সেই ফাইলের সামগ্রীগুলি "উত্স" করা। সঙ্গে source
নিজেই একটি শেল builtin কমান্ড হচ্ছে। এবং source
ডট অপারেটর প্রতিশব্দ হচ্ছে।
বলুন যে আমার কাছে একটি sample.sh
ফাইলে নিম্নলিখিত বিষয়বস্তু ছিল ।
$ cat sample.sh
echo "hi"
echo "bye?"
এখন যখন আমি এটি উত্স:
$ . sample.sh
hi
bye?
$
এর মতো ফাইলগুলি প্রায়শই সেটআপ কমান্ডগুলি অন্তর্ভুক্ত করতে ব্যবহৃত হয় যেমন পরিবেশের ভেরিয়েবলগুলিতে জিনিস যুক্ত করা।
বলুন আমার কাছে এই কমান্ডগুলি অন্য একটি ফাইলে ছিল addvars.sh
,।
$ cat addvars.sh
export VAR1="some var1 string"
export VAR2="some var2 string"
লক্ষ্য করুন যে আমার আমার বর্তমান শেলের পরিবেশে কোনও পরিবর্তনশীল নেই।
$ env | grep VAR
$
এখন যখন আমি এই ফাইলটি উত্স করি:
$ . addvars.sh
$
ঠিক আছে, দেখে মনে হচ্ছে এটি কিছু করেছে না, তবে আমরা যখন env
আবার ভেরিয়েবলগুলি পরীক্ষা করি :
$ env | grep VAR
VAR1=some var1 string
VAR2=some var2 string
স্ল্যামের উত্তরে যুক্ত করতে:
শেল স্ক্রিপ্ট চালানোর জন্য দুটি উপায় রয়েছে। একটি হ'ল পৃথক প্রক্রিয়াতে স্ক্রিপ্টটি চালানো, যার অর্থ শেলটির পরিবেশ (মেমরির অবস্থা) সম্পর্কে যে কোনও কিছুই "শিশু" শেল প্রক্রিয়া চালানোর আগে "প্যারেন্ট" শেলের অবস্থায় ফিরে আসবে।
উদাহরণস্বরূপ, বর্তমান ওয়ার্কিং ডিরেক্টরি (ফাইল সিস্টেমে অবস্থানের অবস্থানটি) প্রতি-প্রক্রিয়া ভিত্তিতে নির্ধারিত হয়। সুতরাং, এর মতো দেখতে একটি স্ক্রিপ্ট রাখি:
#!/bin/bash
cd ~
cd ..
pwd
সুতরাং, আসুন, এই স্ক্রিপ্টটি কল করুন ওহ foo
,। এবং আসুন নিম্নলিখিত হিসাবে এই স্ক্রিপ্ট চালানো যাক:./foo
আমরা নিম্নলিখিত দেখতে পাবেন:
/home
(স্ট্যান্ডার্ড অস্বীকৃতি যে এখানে প্রচুর পরিমাণে লিনাক্স এবং অন্যান্য ইউএনআইএক্স ক্লোন বিতরণ রয়েছে, যার মধ্যে কিছু ব্যবহারকারীর ডিরেক্টরিতে অন্তর্ভুক্ত নয় /home
Or বা আমরা যেমন বলতাম "আপনার মাইলেজটি ভিন্ন হতে পারে")
এখন, এই স্ক্রিপ্টটি চালানোর পরে, এই কমান্ডটি টাইপ করুন
pwd
আমরা কোন ডিরেক্টরিতে আছি তা দেখতে আমরা এই জাতীয় কিছু দেখতে পাব:
/home/username
কারণ হ'ল, আমরা যে শেল স্ক্রিপ্টটি চালিয়েছিলাম তার নিজস্ব পরিবেশ ছিল (কমান্ডগুলি চালানো হচ্ছে তার নিজস্ব ডিরেক্টরি সহ), এবং স্ক্রিপ্টটি শেষ হয়ে গেলে সেই পরিবেশটি চলে যায়।
এখন, এর foo
মতো স্ক্রিপ্টটি চালানো যাক
. ./foo
বা, সমতুল্য:
source ./foo
আমরা যদি এর pwd
পরে কিছু করি তবে আমরা এটি দেখতে পাব:
/home
কারণ হ'ল: স্ক্রিপ্ট উত্সাহিত করা পৃথক প্রক্রিয়া কল করে না। এটি হ'ল প্যারেন্ট প্রসেসের সমস্ত কমান্ড টাইপ করার মতো; স্ক্রিপ্ট শেষ হওয়ার পরে এর পরিবেশ সংরক্ষণ করা হবে।
আমাকে একটি সহজ উদাহরণ হাজির করা যাক। এর মতো দেখতে একটি স্ক্রিপ্ট আসুন:
#!/bin/bash
exit
এর নাম দিন foo
। নিশ্চিত আমরা এটা চালাতে পারেন করা যাক: chmod 755 foo
। তারপরে, এর মতো এটি চালানো যাক:
./foo
কিছুই ঘটেনি. তবে, অন্যদিকে, আমরা যদি এটি করি:
. ./foo
অথবা এটা:
source ./foo
আমরা লগ আউট।
# type .
. is a shell builtin
# help .
.: . filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
। (উত্স বা ডট অপারেটর)
বর্তমান শেল প্রসঙ্গে ফাইলের যুক্তি থেকে কমান্ডগুলি পড়ুন এবং সম্পাদন করুন।
Syntax
. filename [arguments]
source filename [arguments]
উত্সটি বিন্দু / পিরিয়ড 'এর প্রতিশব্দ। ব্যাশে, তবে POSIX sh এ নয়, তাই সর্বোচ্চ সামঞ্জস্যের জন্য সময়কালটি ব্যবহার করুন।
যখন কোনও স্ক্রিপ্ট উত্স ব্যবহার করে চালিত হয় এটি বিদ্যমান শেলের মধ্যে চলে, স্ক্রিপ্ট দ্বারা তৈরি বা সংশোধিত যে কোনও ভেরিয়েবল স্ক্রিপ্ট সম্পূর্ণ হওয়ার পরে উপস্থিত থাকবে। বিপরীতে যদি স্ক্রিপ্টটি কেবল ফাইলের নাম হিসাবে চালানো হয়, তবে স্ক্রিপ্টটি চালানোর জন্য একটি পৃথক সাবશેল (সম্পূর্ণরূপে ভেরিয়েবলের সেট সহ) তৈরি করা হবে।
.Ss64script (dot ss64script) চালিয়ে কোনও স্ক্রিপ্ট কার্যকর করার মধ্যে একটি সূক্ষ্ম পার্থক্য রয়েছে। ss64script (ডট স্পেস ss64script)
প্রথমটি একটি ফাইল চালাচ্ছে যা 'ls' কমান্ড থেকে আড়াল হয়েছে, (যদিও ls -a লুকানো ফাইলগুলি দেখায়) দ্বিতীয় বিকল্পটি এসএমএসএসস্ক্রিপ্ট কার্যকর করবে যদিও এটি chmod এর সাথে নির্বাহযোগ্য হিসাবে সেট না করা থাকলেও।
টি এল; ডিআর
বিন্দু সোর্স কমান্ডের সমান।
উত্স হ'ল একটি ইউনিক্স কমান্ড যা বর্তমান প্রসঙ্গে নির্বাহিত আদেশের তালিকা হিসাবে কমান্ডের পরে ফাইলটি মূল্যায়ন করে।
Https://en.wikedia.org/wiki/Source_( কমন্ড ) থেকে তোলা হয়েছে