क्यों बाहर निकलें कोड का उपयोग नहीं? एक Git भंडार वर्तमान निर्देशिका में मौजूद है, तो git branch
और git tag
आदेशों 0 के निकास कोड नहीं लौटाना; अन्यथा, एक गैर-शून्य निकास कोड वापस आ जाएगा। इस तरह, आप यह निर्धारित कर सकते हैं कि क्या एक गिट रिपॉजिटरी मौजूद है या नहीं। बस, आप चला सकते हैं:
git tag > /dev/null 2>&1 && [ $? -eq 0 ]
फायदा : फ्लेक्सिब। यह नंगे और गैर-नंगे दोनों रिपोजिटरी के लिए काम करता है, और श, ज़श और बैश में।
व्याख्या
git tag
: मौजूद है या नहीं, यह निर्धारित करने के लिए रिपॉजिटरी के टैग प्राप्त करना।
> /dev/null 2>&1
: सामान्य और त्रुटि आउटपुट सहित किसी भी चीज़ को प्रिंट करने से रोकना।
[ $? -eq 0 ]
: जांचें कि क्या पिछला कमांड एक्जिट कोड 0 के साथ लौटा है या नहीं। जैसा कि आप जानते हैं, हर गैर-शून्य निकास का मतलब कुछ बुरा हुआ है। $?
पिछला आदेश के निकास कोड हो जाता है, और [
, -eq
और ]
तुलना करते हैं।
एक उदाहरण के रूप में, आप check-git-repo
निम्नलिखित सामग्रियों के साथ एक फ़ाइल बना सकते हैं, इसे निष्पादन योग्य बना सकते हैं और इसे चला सकते हैं:
#!/bin/sh
if git tag > /dev/null 2>&1 && [ $? -eq 0 ]; then
echo "Repository exists!";
else
echo "No repository here.";
fi