প্রতিধ্বনি [9876543210] প্রদর্শিত হয় 1 4 5 6… কেন?


19

দয়া করে ব্যাখ্যা করুন কেন শেষ 4 ইকো স্টেটমেন্টগুলির জন্য 1 4 5 6 প্রদর্শিত হয়? আমি একবার এটি দুর্ঘটনার দ্বারা আঘাত করেছি, তবে কেন এই আচরণ ঘটে তা সম্পর্কে এখন আমি আগ্রহী।

এই বিবৃতি প্রত্যাশিত হিসাবে কাজ করে (আমার জন্য)।

$ echo [ 9876543210 ]  
[ 9876543210 ]

$ echo [237890]  
[237890]

এই প্রতিধ্বনি বিবৃতি ধারাবাহিকভাবে 1 4 5 প্রদর্শন করে 6.. এই সংখ্যাগুলির জন্য কি বিশেষ কিছু আছে?

$ echo [9876543210]  
1 4 5 6

$ echo [abcd9876543210ghi]  
1 4 5 6

$ echo [-123456-]  
1 4 5 6

$ echo [-7654321-]  
1 4 5 6

ধন্যবাদ!

  • সম্ভাব্য সদৃশটি সম্পর্কিত এবং সহায়ক, তবে কোনও সদৃশ নয়। সম্ভাব্য সদৃশ হ'ল একটি rmকমান্ডের দৃষ্টিকোণ থেকে । এই প্রশ্নটি একটি echoকমান্ডের উপলব্ধি "অদ্ভুত আচরণ" এর দৃষ্টিকোণ থেকে । উভয়ের অন্তর্নিহিত উত্তরটি গ্লোববিং। কোনও echoআদেশের সাথে সমস্যাগুলির জন্য অনুসন্ধান করা কোনও ব্যক্তি সহজেই rmপ্রশ্নটি খুঁজে পাবে না , তবে সম্ভবত এখানে অবতরণ করবে।

16
আপনার বর্তমান ডিরেক্টরিতে 4 টি ফাইল রয়েছে, যার নাম দেওয়া হয়েছে: 1 4 5এবং6
— জেফ শ্যাচলার

5
লোল, metasmoke.erwaysoftware.com/post/58973 এ বট এই পোস্টটিকে স্প্যাম হিসাবে পতাকাঙ্কিত করে কারণ এর "শিরোনামে একটি ফোন নম্বর আছে" ... সত্যই?
— কার্লো উড

2
@ কার্লোওউড, টানা দশটি সংখ্যা স্থানীয় কোডের সাথে যুক্তরাষ্ট্রে একটি ফোন নম্বর মেলে। সাধারণ বিন্যাস ব্যবহার করে লেখা, এটি 987-654-3210 হবে।
— চিহ্নিত করুন

1
দ্রষ্টব্য যে আপনি যদি চালু করেন তবে nullglobআপনার দ্বিতীয় উদাহরণ ( echo [237890]) আসলে কিছুই মুদ্রণ করবে না, যা অন্য উদাহরণগুলিতে আপনি বিশ্ব-সম্প্রসারণ দেখতে পাচ্ছেন।
— কাইল স্ট্র্যান্ড

উত্তর:


33

খোলা বন্ধনী [শেলের একটি বিশেষ চরিত্র; এটি একটি প্যাটার্ন মেলানো অ্যালগরিদম খোলায় যা বলেছে "বন্ধনীগুলির মধ্যে থাকা যে কোনও অক্ষরের সাথে মেলে"। আপনার বর্তমান ডিরেক্টরিতে আপনার নামে 4 টি ফাইল রয়েছে: 1, 4, 5, এবং 6, যখন বন্ধনীর ভিতরে থাকা অক্ষরগুলিতে সেই কোনও অঙ্ক থাকে, আপনার শেল সেই ফাইলের সাথে প্যাটার্ন-ম্যাচের পরিবর্তে। আপনি যদি এর পরিবর্তে ব্যবহার করেন, তখন echo [ 9876543210 ]আপনি 3 পরামিতি সঙ্গে প্রতিধ্বনি আহ্বান করা হয়: [, 9876543210, এবং ]।

শেলটিকে প্যাটার্ন মেলানোর অনুরোধ হিসাবে দেখার থেকে বাধা দেওয়ার জন্য আপনার প্রতিধ্বনি বিবৃতিটির পরামিতিগুলি উদ্ধৃত করা উচিত।

$ echo '[9876543210]'
[9876543210]

(বা 1, 4, 5, এবং 6 নামক ফাইলগুলি সরিয়ে ফেলুন - তবে এটি আচরণটি প্রমাণ করার মতো কাজ নয়, কোনও স্থির নয়)।


4
সম্ভবত এটির চেয়ে তিনটি পরামিতি সহ echo [ 987 ]কলগুলি বলা ভাল ? echotest
— dhag

2
এটা সত্যিই হবে! আমি অতিরিক্ত উত্তর দিয়েছি :(
— জেফ শ্যাচলার

1
* আমি আপনার প্রথম উত্তর সংস্করণটিও পছন্দ করি, কারণ বিভিন্ন পরীক্ষার প্রতিধ্বনি বিবরণ চেষ্টা করার সময় আমি প্রথমে এটি জুড়েছিলাম।
— মাইকড

1
মূল উত্তরটিও সত্য নয়। তিনি লিখেছেন: প্রতিধ্বনি [9876543210]। [(এভাবে পরীক্ষা করা) এর কোন অনুরোধ করা হয়নি।
— হাঁটু

মূল বিষয়টি হ'ল বর্গাকার বন্ধনীগুলির মধ্যে ফাঁকা স্থান আছে কিনা এবং তার ভিতরে কি আছে তার উপর নির্ভর করে যুক্তির যুক্তিটি echoআলাদাভাবে ব্যাখ্যা করা হয় bash। [123]বনাম [ 123 ]।
— jskroch
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.