টার্মিনাল কমান্ডগুলিতে "" "(অ্যাস্ট্রোস্ট্র) এর অর্থ


11

কিছু অদ্ভুত কারণে, আমি শনাক্তকারীগুলিতে শব্দ বিভাজক হিসাবে "" "চেষ্টা করেছি, যেমন:

$ export foo'bar=1
> 
> ^C
$ 

ফলাফলটি উপরে প্রদর্শিত হিসাবে দেখানো হয়েছে, আইডিটি ">" এ প্রম্পট পরিবর্তন করে এবং সম্ভবত স্পষ্টতই সিস্টেমটি আমার পক্ষ থেকে আরও তথ্যের জন্য অপেক্ষা করে। আপনি দেখতে হিসাবে, আমি পালাতে ctrl-C ছিল। অন্যান্য কমান্ড যেমন ব্যবহার করে একই ঘটে

$ ls foo'bar
$ mkdir foo'bar

আমি এই সমস্ত কিছুর ধারণা সম্পর্কে আগ্রহী, এটিই টার্মিনাল কমান্ডগুলিতে "" "বিশেষ অর্থ (এটি বিশেষত এটি আইডির অভ্যন্তরে পৃথক পৃথকভাবে নেওয়া হয়েছে) এরও বিশেষ অর্থ।

অতিরিক্ত: একদিকে যেমন আমি ইউনিক্সের মতো এবং উইন্ডোজ সিস্টেমের অধীনে (নিরাপদগুলির সাধারণ উপসেট পেতে) উভয়ই ফাইল এবং ফোল্ডারের নামগুলিতে বিশেষ বা অন্যথায় অবৈধ অক্ষরের সেট জানতে চাই (বিশেষত, সমস্ত কি নন- ASCII?)।

ধন্যবাদ ডেনিস


লিনাক্স বিশ্বে \ 0 (নাল) এবং / ব্যতীত সমস্ত অক্ষর অনুমোদিত are যাইহোক, এর অর্থ এই নয় যে তারা সকলেই যুক্তিযুক্ত। শেলটির একটি বিশেষ অর্থ রয়েছে এমন অক্ষরগুলি এড়িয়ে চলা অনেকেই সেরা বিবেচনা করে। আপনি যদি উইন্ডোজ সম্পর্কে জানতে চান তবে একটি উইন্ডোজ রেফারেন্সের পরামর্শ নিন।
স্কট সিভেরেন্স

উত্তর:


15

যে কোনও শেল কমান্ডে ব্যবহৃত হলে অক্ষরটি একটি অত্যন্ত শক্তিশালী চরিত্র। মূলত '(অ্যাস্টোস্ট্রোফ চিহ্ন) সমস্ত ধরণের রূপান্তর বা পরিবর্তন অক্ষম করে। এটি 'একক সত্তা হিসাবে যেমন একটি একক প্যারামিটার হিসাবে চিহ্নের সাথে সংযুক্ত সমস্ত কিছু বিবেচনা করবে। একেবারে কোনও প্রতিস্থাপন বা সম্প্রসারণ ঘটবে না।

উদাহরণ:

 $ echo '$HOME'

আউটপুটে $HOMEনিজেই স্ট্রিং উত্পাদন করবে এবং আপনার হোম ডিরেক্টরিতে পাথ মুদ্রণ করবে না। যেহেতু একক উদ্ধৃতিগুলি যে কোনও প্রকারের প্রসারকে বাধা দেয়, তাই প্রতিস্থাপন এবং সহজ যা-ই হোক না কেন নিজেকে একটি সাধারণ পরামিতি হিসাবে বিবেচনা করে।

আপনি যদি এস্ট্রোফেরিকে যেমনটি ব্যবহার করতে চান তবে আপনাকে এড়াতে হবে:

 $ mkdir foo\'bar

 $ cd foo\'bar

যদি এটি এড়ানো না যায়, তবে এটির জুটি বন্ধ হওয়ার জন্য অপেক্ষা করবে, যেমনটি আপনার প্রথম উদাহরণে ঘটেছিল।

সুতরাং, সংশোধন করুন, আপনার আদেশটি হবে:

 $ export foo\'bar=1

দ্রষ্টব্য: মিলান টোডোরোভিচ যেমন লক্ষ্য করেছেন, এটি বৈধ হবে না, কারণ আপনি এই ক্ষেত্রে অ্যাস্টোস্ট্রোফ ব্যবহার করতে পারবেন না।


1
@ অস্বীকার করুন দয়া করে উত্তরটি যদি আপনার দেখার দরকার হয় তবে তা গ্রহণ করুন :)
রিনজউইন্ড

7

ক্যারেক্টার 'একটি বিশেষ চরিত্র। আপনি এটি কমান্ড লাইন প্রবেশের অংশ চিহ্নিত করতে ব্যবহার করেছেন যা কোনও পরিবর্তন হবে না (যেমন ওয়াইল্ডকার্ডের জন্য কোনও প্রতিস্থাপন নয়)। উদাহরণ স্বরূপ:

$ ls 'bla*'
ls: cannot access bla*: No such file or directory

এই যুক্তি মানে যে lsছিল bla*সবকিছু যে দিয়ে শুরু হয় এবং bla

আপনি >চরিত্র পাওয়ার কারণ হ'ল কারণ আপনার অবশ্যই একটি 'খোলার জন্য এবং একটি 'অংশ বন্ধ করার জন্য অবশ্যই ব্যবহার করা উচিত যা পরিবর্তিত হবে না।

আপনি ব্যবহার করতে চান তাহলে 'ফোল্ডারের নাম এই মত পালাতে হবে: \'। সুতরাং আপনি যদি নামযুক্ত ফোল্ডারটি তালিকাভুক্ত করতে চান তবে আপনার foo'barটাইপ করা উচিত ls foo\'bar

ওহ, এবং আমি নিশ্চিত না যে 'পরিবেশের পরিবর্তনশীল নামগুলি ব্যবহার করা সম্ভব কিনা । আমি মনে করি আপনি ব্যবহার করতে পারবেন না export foo\'bar=1,

আশাকরি এটা সাহায্য করবে.


পরিবেশের পরিবর্তনশীল নাম বিধিনিষেধ সম্পর্কে আপনার পর্যবেক্ষণের জন্য উত্সাহ দিন v
ফ্রেঞ্চিক

এখনও উত্সাহ দেওয়া যাবে না (জিজ্ঞাসাবাট্টু নতুন), কিন্তু অনুভূতি আছে। Env var নামগুলি সম্পর্কে চেক করা হয়েছে, এটি যেমন আপনি বলেছেন ঠিক তেমন। (আমি নিজেকে বিতরণকারীদের খোলার / বন্ধ করার সময় চিন্তা না করার জন্য কিছুটা বোকা বোধ করি তবে আমি তখন "" "কে সত্যিকারের অ্যাডোস্ট্রোফ হিসাবে বিবেচনা করি, একক-উদ্ধৃতি নয়)। ডেনিস
63
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.