অপারেটর অগ্রাধিকার সহ ক্লাসিক দৃশ্যে আপনার মত লাইন রয়েছে:
(cd ~/screenshots/ && ls screenshot* | head -n 5)
আর তুমি যদি এটা পার্স জানিনা ((A && B) | C)বা (A && B | C)...
প্রায় সরকারী ডকুমেন্টেশন পাওয়া এখানে তালিকায় নল তালিকাভুক্ত না তাই আমি কেবল টেবিল চেক করতে পারবে না।
ব্যাশ ছাড়াও, (কেবলমাত্র ক্রিয়াকলাপের ক্রম পরিবর্তন করার জন্য নয় এটি একটি সাবশেল তৈরি করে , তাই আমি 100% নিশ্চিত নই যে এই লাইনগুলি আগের লাইনের সমতুল্য:
((cd ~/screenshots/ && ls screenshot*) | head -n 5)
আরও সাধারণভাবে, কীভাবে বাশ লাইনের এএসটি জানবেন ? পাইথনে আমার একটি ফাংশন রয়েছে যা আমাকে গাছ দেয় যাতে আমি সহজেই অপারেশনের ক্রমটি ডাবল করতে পারি।
bashকোনও ইয়্যাক পার্সার ব্যবহার করছে কিছু অ্যাডহক জিনিস নয়; আপনি চালাতে যে মাধ্যমে yacc -vএটা দিতে হবে y.outputএকটা চমৎকার ব্যাকরণ যে অনুষ্ঠান &&এবং ||তালিকা একত্রিত করা, এবং তালিকা অবশেষে পাইপলাইনগুলি আপ করা হয় (এবং বিপরীত); TL; ড; A && B | Cহিসাবে একই A && { B | C; }আশানুরূপ। Bএবং এর মধ্যে মৃত্যুদণ্ড কার্যকর করার কোনও আদেশ অনুমান করবেন না C; পাইপলাইনে কমান্ড সমান্তরালভাবে চালিত হয় ।
[...]পরীক্ষা এবং $((...))পাটিগণিত মূল্যায়নের অভ্যন্তরে ব্যবহৃত অপারেটরদের সম্পর্কে ; বিশেষত ||এবং &&শেল ল্যাঙ্গুয়েজে কমান্ড তালিকার সাথে যেমন ব্যবহার করা হয়েছে তেমনই প্রাধান্য পেয়েছে C, গাণিতিক মূল্যায়নের ক্ষেত্রে বা অপারেটরগুলির &&তুলনায় (যেখানে আরও শক্ত করে বাঁধাই করা হয় ||)।
|সংযোগকারী যা এইচএইচএস স্টিডিনের সাথে এলএইচএস স্টাডাউটের সাথে মানানসই তা জানতে সাহায্য করতে পারে । সুতরাং যদিcdআপনার উদাহরণের কমান্ডটি ব্যর্থ হয় তবে এটি কোনও আউটপুট প্রেরণ করবে নাhead, তবেheadবাস্তবে এখনওexecuteকিছুই পার্স করবে না এবং কোনও আউটপুট ফেরত দেবে না।