سؤال سلسلة أوامر السمك عبر `&&` أو `||`


في Bash / ZSH والأصداف الأخرى ، أنا معتاد على استخدامها && و ||.

هل هناك ما يعادل في السمك؟


87
2017-07-10 03:01


الأصل


هذه الصيغة مدعومة الآن على الفرع الرئيسي وسيتم إصدارها في Fish 3.0 (github.com/fish-shell/fish-shell/commit/...) - Elliott Beach


الأجوبة:


السمك ليس له بنية خاصة لمنطق منطقي AND (&&) أو OR منطقي (||).

بدلاً من ذلك ، يمكنك استخدام الأوامر and و orالتي تحقق من حالة خروج الأمر السابق وتتصرف وفقًا لذلك:

command1
and command2
command1
or command2

علاوة على ذلك - تمامًا كما هو الحال في bash - يمكنك استخدام فاصلة منقوطة ; لتنفيذ الأمرين واحد بعد الآخر:

command1 ; command2

هذا يسمح باستخدام بناء أكثر مألوفة:

command1 ;and command2
command1 ;or command2

نرى http://fishshell.com/docs/current/tutorial.html#tut_combiners


120
2017-07-10 03:18



هناك مشكلة github مفتوحة لإضافة دعم لهذا البناء: && لا يعمل · العدد # 150 · أسماك القشرة / قشرة السمك - aboy021
This allows using a more familiar syntax: هو ذاتي جدا - Petr Peller
;and أقل قابلية للقراءة من && كما يقترح منقوطة عملية منفصلة منطقي. انها jarring بصريا. - Elliott Beach
Elliott أوافق ، لكن Fish لا يوفر لك خيارًا. - Dennis
لاحظ أنه على الرغم من أن قذائف الأسماك و bourne لها ، فإن AND و OR لها نفس الترتيب ، على عكس اللغات المعتمدة على C: unix.stackexchange.com/a/88851/50703 - balupton