লিনাক্স ব্যাশে ডাবল-অ্যাম্পারস্যান্ড (&&) এবং সেমিকোলন (;) এর মধ্যে পার্থক্য কী?


112

লিনাক্স ব্যাশে অ্যাম্পারস্যান্ড এবং সেমিকোলনের মধ্যে পার্থক্য কী ?

উদাহরণ স্বরূপ,

$ command1 && command2

বনাম

$ command1; command2

6
আমি এখানে এটি উত্তর দিয়েছি: superuser.com/a/619019/107862
এটান রিজনার

9
অফ-টপিকনেস সম্পর্কে, আমি শেষবার যাচাই করেছিলাম, বাশ এখনও প্রোগ্রামিং ল্যাঙ্গুয়েজ ছিল তবে আমি আগে ভুল ছিলাম এবং এটি কিছু শুকনো ফলের মিছরিও হতে পারে।
স্টিভ কে

এটি হ'ল, এবং আপনি কোনও নির্দিষ্ট আচরণ সম্পর্কে কোনও প্রশ্ন জিজ্ঞাসা করছেন বা কোনও নির্দিষ্ট কাজ করার সঠিক উপায় এটি অবশ্যই বিষয়টিতে হবে। এটি "ভাষার সিনট্যাক্স সম্পর্কে প্রশ্ন" এর গ্রেয়ার ক্যাটাগরিতে পড়ে যা আমি যতটা উদ্বিগ্ন তেমন পরিষ্কার "প্রোগ্রামিং" প্রশ্ন নয়।
এটান রিজনার

4
বাশ কিছু উপায়ে শুকনো এবং কোনওভাবে মিষ্টি। দিন শেষে এটি বেশ মনোরম এবং হজমযোগ্য। এটি সহজেই বাচ্চাদের কাছ থেকে চুরি করা যায় না।
কোড_মুনক

উত্তর:


138

&&যদি বাম পাশে একটি নন-জিরো প্রস্থান অবস্থা, অপারেটর আয় যে অবস্থা ফেরৎ এবং ডান পাশে (এটা স্বল্প সার্কিট) নির্ণয় করা হয় না অন্যথায় এটি ডান দিকে মূল্যায়ণ এবং তার প্রস্থানের অবস্থা ফেরৎ: অপারেটর একটি বুলিয়ান AND দেয়া হয় । এটি সফলভাবে command2চালানো হলে কেবল চালানো হয় তা নিশ্চিত করতে এটি ব্যবহৃত হয় command1

;টোকেন শুধু কমান্ড আলাদা, তাই এটি দ্বিতীয় কমান্ড হোক বা না হোক প্রথম এক সফল নির্বিশেষে চালানো হবে।


6
ডাবল এম্পারস্যান্ড বাশ &&একটি একক এম্পারস্যান্ড থেকে পৃথক &?
চার্লি পার্কার 21

16
@ চারলিপার্কার &কমান্ডটি পটভূমিতে চালিত করার কারণ হয়ে গেছে, তাই হ্যাঁ। "এটি ব্যাকগ্রাউন্ডে চালান" "এই পরবর্তী কমান্ডটি চালান কেবল তখনই যদি এই অন্যটি সফল হয় তবে এটির চেয়ে আলাদা"।
cdowie

কমান্ড 2 কেবল কমান্ড 1 রান করবে শূন্য প্রস্থান স্থিতি, যার অর্থ এটি সফলভাবে শেষ হয়েছে ..
নিক

33

কমান্ড 1 && কমান্ড 2

command1 && command2কার্যকরভাবে command2(এবং শুধুমাত্র যদি) command1কার্যকর হয় তবে কার্যকর হয়। ইউনিক্স জারগনে, এর অর্থ শূন্যের সমান প্রস্থান কোড / রিটার্ন কোড

command1; command2

command1; command2ক্রমান্বয়ে command2কার্যকর করার পরে নির্বাহ করে command1। কমান্ডগুলি সফল হয়েছিল কিনা তা বিবেচ্য নয়।


6

পূর্বেরটি একটি সাধারণ যুক্তিযুক্ত AND শর্ট সার্কিট মূল্যায়ন ব্যবহার করে , দ্বিতীয়টি কমান্ডটি সীমাবদ্ধ করে দেয়।

বাস্তবে যা ঘটে তা হ'ল প্রথম প্রোগ্রামটি যখন ননজারো প্রস্থান কোড ফেরত দেয় তখন পুরোটির ANDমূল্যায়ন করা হয় FALSEএবং দ্বিতীয় কমান্ড কার্যকর করা হবে না। পরে কেবল তাদের দু'জনকেই যথাযথভাবে কার্যকর করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.