যদিও এটি সত্য যে eval
সর্বদা সতর্কতার সাথে যোগাযোগ করা প্রয়োজন, eval echo
নির্মাণটি সর্বদা অর্থহীন নয় এবং নিরাপদে ব্যবহার করা যেতে পারে। আমার সম্প্রতি প্রয়োজন হয়েছে যাতে আমি একাধিক ধনুর্বন্ধনী বিস্তৃতিগুলি ক্রম করে আমার প্রয়োজনীয় ক্রমের সাথে মূল্যায়ন করতে পারি।
bash
বাম থেকে ডানদিকে একাধিক ধনুর্বন্ধনী বিস্তৃতি করে
xargs -I_ cat _/{11..15}/{8..5}.jpg
প্রসারিত হয়
xargs -I_ cat _/11/8.jpg _/11/7.jpg _/11/6.jpg _/11/5.jpg _/12/8.jpg _/12/7.jpg _/12/6.jpg _/12/5.jpg _/13/8.jpg _/13/7.jpg _/13/6.jpg _/13/5.jpg _/14/8.jpg _/14/7.jpg _/14/6.jpg _/14/5.jpg _/15/8.jpg _/15/7.jpg _/15/6.jpg _/15/5.jpg
তবে আমার দ্বিতীয় ব্রেস সম্প্রসারণের দরকার ছিল প্রথমে ফলনকারী
xargs -I_ cat _/11/8.jpg _/12/8.jpg _/13/8.jpg _/14/8.jpg _/15/8.jpg _/11/7.jpg _/12/7.jpg _/13/7.jpg _/14/7.jpg _/15/7.jpg _/11/6.jpg _/12/6.jpg _/13/6.jpg _/14/6.jpg _/15/6.jpg _/11/5.jpg _/12/5.jpg _/13/5.jpg _/14/5.jpg _/15/5.jpg
আমি যেটা করতে পেরেছি সেরা
xargs -I_ cat $(eval echo _/'{11..15}'/{8..5}.jpg)
এটি কাজ করে কারণ একক উদ্ধৃতি eval
কমান্ড লাইনের বিশ্লেষণের সময় প্রথম ধনুর্বন্ধনীগুলির প্রসারণ থেকে রক্ষা করে , যা তাদের দ্বারা চালিত সাব-শেল দ্বারা প্রসারিত হতে দেয় eval
।
নেস্টেড ব্রেস সম্প্রসারণের সাথে জড়িত কিছু ধূর্ত স্কিম থাকতে পারে যা এটি এক ধাপে ঘটতে দেয়, তবে যদি সেখানে থাকে তবে আমি এটি দেখতে পুরানো এবং বোকা। এগুলি ছাড়া অন্য bash
শেলগুলিও এই ধরণের জিনিস অর্জনের সুসংগত উপায়গুলির জন্য অনুমতি দেয়। তবে যে কোনও ক্ষেত্রে, এই ব্যবহারটি eval
নিরাপদ কারণ এর আর্গুমেন্টগুলি সমস্ত স্থির স্ট্রিং যার কোনও প্যারামিটার বিস্তৃতি থাকে না।