উত্স বনাম কেন আলাদা আচরণ?


17

আমি সম্প্রতি শিখেছি, যে

. ./.a.aএবং ./.a.aএকই।

তবে চেষ্টা করা source source .a.aএকটি ত্রুটি দেয়। আইএমও, .বাশ ওরফে হওয়ার কারণে sourceআলাদা আচরণ করা উচিত নয়, তবে আমি কী অনুপস্থিত?

বোনাস, . .ঠিক আছে source sourceনা কেন ?


8
আপনি আপনার উদাহরণের জন্য একটি পরিষ্কার নাম চয়ন করতে পারে :)। যাই হোক, যাই হোক না কেন আপনি যে ধারণা দিয়েছেন . scriptএবং ./scriptএকই জিনিস? তারা অবশ্যই না । এছাড়াও, .একটি উপনাম নয় source। এটি অন্যভাবে। .মান এবং sourceএটি একটি উপনাম .
টেরডন

2
শেল স্ক্রিপ্টগুলি দেখার জন্য কিছু সময় ব্যয় করার পরে, আপনি .কমান্ডটি ব্যবহার করতে অভ্যস্ত হন, তবে আমি বলতে চাইছি sourceএটি একটি আরও ভাল কমান্ড, যখন আপনি source somefileকোনও স্ক্রিপ্টে দেখেন যে তাত্ক্ষণিকভাবে এই বিবৃতিটি কী করে তা বুঝতে পারে, তবে . somefile এটি কী করে তা কেবল পরিষ্কার নয়, আপনি সহজেই . অক্ষরটি পুরোপুরি মিস করতে পারেন
the_velour_fog

বোনাস, কেন। । ঠিক আছে, তবে সোর্স সোর্স নেই? - কতদূর ত্রুটি বার্তা bash: .: .: is a directoryউপর . .ঠিক চাহিদা ব্যাখ্যা করা হয়।
কাউন্টারমোড

@terdon - একেবারে ঠিক। আসল উদাহরণটি ছিল . ./.a.a .সত্যবাদিতা। : -ডিজি কুইজ, যদি আপনি চান। :-) সংযুক্ত প্রশ্নটি দুর্দান্ত, অনেক ধন্যবাদ। আমার যে ধারণা দিয়েছেন: এটা সত্য যে আমি ফাইল এই ভাবে এবং সত্য কোথাও পড়া নির্বাহ মধ্যে কোনো পার্থক্য দেখা যায় .একটি ওরফে হয় source। :-)
এলএএফকে মনিকাকে

উত্তর:


27

আপনি শুধু প্রতিস্থাপন করতে পারবেন না .সঙ্গে sourceসর্বত্র; যদি

. ./.a.a

কাজ করে, আপনি প্রথমটি প্রতিস্থাপন করতে পারেন .(কমপক্ষে ব্যাশে):

source ./.a.a

দ্বিতীয়টি .বর্তমান ডিরেক্টরিটিকে উপস্থাপন করে, আপনি এটিকে প্রতিস্থাপন করতে পারবেন না source(বিশেষত আপনি যেমনটি ./করেছেন sourceতেমন নয় )।

source source

sourceআপনার বর্তমান শেলটির জন্য অর্থপূর্ণ কিছু ধারণ করে বর্তমান ডিরেক্টরিতে যদি আপনার কাছে একটি ফাইল ডাকা হয় তবে ঠিক হবে । আমি ঠিক করতে পারি না কিভাবে . ....

এছাড়াও, . ./.a.aএবং ./.a.aএকই নয়, দ্বিতীয় ফর্মটি .a.aপৃথক শেলের মধ্যে চলে। দেখুন সোর্সিং ('।' বা 'উত্স') এবং ব্যাশে কোনও ফাইল নির্বাহের মধ্যে পার্থক্য কী? বিস্তারিত জানার জন্য.


9

sourceএটি একটি শেল কীওয়ার্ড যা এই জাতীয়ভাবে ব্যবহৃত হবে বলে মনে করা হয়: sourcefileযেখানে fileবৈধ শেল কমান্ড রয়েছে। এই শেল কমান্ডগুলি বর্তমান শেলটিতে কার্যকর করা হবে যেমন কমান্ড লাইন থেকে টাইপ করা হয়। এখন, .fileঠিক একই কাজ করে।

এর বাইরে .একার অর্থ "বর্তমান কার্যনির্বাহী ডিরেক্টরি" যেমন ./xyz(" xyzএই ডিরেক্টরিতে") বা a/b/./c/./d(যা এর সাথে সমান a/b/c/d)।

এর বাইরে .কোনও ফাইলনামের কেবল কনভেনশন দ্বারা একটি অর্থ রয়েছে .foobarযা একটি "লুকানো" ফাইল (সত্যই নয় ...) বা হিসাবে চিহ্নিত করে foobar.pdf, যা প্রত্যয় (এখানে .pdf) দ্বারা ফাইল ফর্ম্যাটকে নির্দেশ করে ।

এই বিভিন্ন অর্থের সাথে অন্য কোনও পরিবর্তন হতে পারে না।


8
.কোনওভাবেই পুরানো নয়। এটি sourceকোনও পোর্টেবল, পসিক্স-সংজ্ঞায়িত কোনও ফাইলের উত্সের বিপরীতে নয় । sourceওরফে শেল-নির্দিষ্ট এবং (ইন উদাহরণস্বরূপ পারেন অনুপস্থিত হতে পারে dash) অথবা মান থেকে ভিন্নভাবে আচরণ .
টেরডন

ধন্যবাদ @ ইটারডন, উইকি বলেছেন যে সি শেলটিতে বিন্দু (।) হিসাবে উত্সটি গ্রহণযোগ্য নয়, যেখানে কমান্ডটি প্রথম প্রদর্শিত হয়েছিল।
নোয়াম মানস

1
@ নোমমনোস সম্ভবত, তবে সি-শেলটি পসিক্স নয়, সুতরাং এটি (এবং করবে) খুব আলাদা আচরণ করতে পারে।
টেরডন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.