&& तार्किक है और:
&& तार्किक और व्यक्त करने का एक तरीका है , जिसका अर्थ है कि संपूर्ण अभिव्यक्ति केवल तभी सत्य है जब इसके दोनों पक्ष सत्य हैं। तर्क में, यह कहा जाता है कि संपूर्ण कथन (P & Q) केवल सत्य है जब P और Q दोनों सत्य हैं।
इसके परिणामस्वरूप, कंप्यूटर आमतौर पर पी एंड क्यू को शॉर्ट-सर्किट मूल्यांकन के रूप में मानते हैं । इसलिए चूंकि पूरा कथन केवल True होगा यदि P और Q दोनों सत्य हैं, तो यदि P गलत है, तो कथन Q का मूल्यांकन नहीं किया गया है । मूल रूप से कंप्यूटर आलसी (कुशल) होते हैं, और क्यू का मूल्यांकन करने में परेशान नहीं करते हैं यदि उनके पास भी नहीं है। यह तार्किक का भी सत्य है या, पिछला लिंक देखें।
बैश में && के तीन संदर्भ:
1) कमांड के एग्जिट स्टेटस के साथ शॉर्ट-सर्किट इवैल्यूएशन का उपयोग करना:
हर कमांड में एग्जिट स्टेटस होता है। यदि किसी कमांड में त्रुटि है, तो उसके पास एक निकास स्थिति है जो गैर-शून्य है। इसलिए यदि बाहर निकलने की स्थिति गैर-शून्य है और && का उपयोग एक आदेश में एक साथ चेन कमांड के लिए किया जाता है, तो बाद में आदेशों का मूल्यांकन (निष्पादित) नहीं किया जाएगा यदि पहले वाले के पास 0 (ट्रू) की निकास स्थिति नहीं थी। यह शॉर्ट-सर्किट मूल्यांकन के कारण है। इसलिए यदि आपके पास:
P && Q
यदि P सत्य नहीं था, तो Q निष्पादित नहीं किया जाएगा (यदि P किसी भी स्थिति से बाहर निकलता है लेकिन 0, यह सत्य नहीं है)। बस के रूप में ही:
./configure && make
यदि निष्पादन में कोई त्रुटि थी, तो इसे निष्पादित नहीं किया जाएगा, यह सच नहीं था। तो मूल रूप से, तब समाप्त होता है जब लेखन का एक तरीका हो तो
if ./configure ; then
make
fi
ध्यान रखें तो अधिकांश संदर्भों में 0 गलत है, लेकिन तब नहीं जब यह एक निकास स्थिति की बात आती है।
2) && का उपयोग बाश में निर्मित [[]] परीक्षण कमांड में किया जा सकता है:
&& का उपयोग अंतर्निहित परीक्षण कमांड के अंदर bash [[]] में भी किया जा सकता है, इसी तरह अभिव्यक्ति को कमांड के संयोजन के रूप में जोड़ते हैं। संपूर्ण परीक्षण ऑपरेशन केवल तभी सत्य होगा जब && के दोनों ऑपरेंड (पक्ष) सही हों, उदाहरण के लिए:
if [[ ( $a -gt 2 ) && ( $a -lt 5 ) ]]; then ...
अगर $ a 2 और 5 के बीच पूर्णांक है (2 और 5 शामिल नहीं है) तो यह कहने का एक तरीका होगा।
3) अंकगणित मूल्यांकन:
अंत में, && का उपयोग अंकगणितीय मूल्यांकन में तार्किक और के रूप में किया जा सकता है। यदि निम्न में संख्याओं के दोनों (तार्किक और) गैर-शून्य हैं, तो यह 0 लौटाता है, 1 और दिया जाता है:
kbrandt@desktop:~/$ echo $((1 & 1))
1
kbrandt@desktop:~/$ echo $((0 && 1))
0