প্রতিধ্বনি [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.