निकास कोड के रूप में कमांड के आउटपुट का उपयोग करें


6

मेरी कंटीन्यूअस इंटीग्रेशन स्क्रिप्ट्स के लिए मैं जांचना चाहता हूं कि क्या गिट ब्रांच मास्टर ब्रांच के साथ सिंक में नहीं है। इसलिए मैं उपयोग करता हूं

git rev-list --left-right --count master...my-branch-name

यह sth लौटेगा। पसंद

1    3

(3 स्वामी से आगे निकलता है, 1 पीछे)

जोड़ना | cut -f1मुझे केवल पहला नंबर देगा (मास्टर के पीछे चलता है)।

अब मैं केवल उस संख्या के साथ स्क्रिप्ट से बाहर निकलना चाहता हूं क्योंकि 0 सफलता के पीछे है, अन्य सभी को एक त्रुटि देनी चाहिए।

मैं उसे कैसे कर सकता हूँ? मैंने कोशिश की

exit 'git rev-list --left-right --count master...my-branch-name | cut -f1'

लेकिन यह बढ़ जाता है

/ बिन / बैश: पंक्ति ६६: बाहर निकलना: git rev-list --left-right --count master ... मेरी-शाखा-नाम | कट -f1: संख्यात्मक तर्क की आवश्यकता

क्या इसके लिए सबसे अच्छा अभ्यास है?

जवाबों:


5

बस अपनी लाइन बदलें:

exit 'git rev-list --left-right --count master...my-branch-name | cut -f1'

सेवा:

exit `git rev-list --left-right --count master...my-branch-name | cut -f1`

`उद्धरण चिह्नों के बीच कुछ भी निष्पादित किया जाएगा और बैश स्क्रिप्ट पर वापस आ जाएगा, इसलिए आप इसे इसके साथ जो चाहें कर सकते हैं, जिसमें इसे एक चर पर असाइन करना शामिल है।


4
$(...)बैकटिक्स के बजाय का उपयोग करें : अंतर को देखने के लिए बहुत आसान है।
— ग्लेन जैकमैन

संभवतः हां, जिस तरह से मैंने लिखा है वह करने का ऐतिहासिक संगतता तरीका है, जिस $(...)तरह से अलग-अलग गोले के बीच नया और माना जाता है कि वह अधिक "संगत" है, लेकिन दोनों को बिना किसी मुद्दे के साथ काम करना चाहिए।
— nKn

1
बैकटिक्स बैश के लिए ठीक है, लेकिन मनुष्यों के लिए बुरा है। आपके उत्तर के अंतर को समझने में मुझे कई सेकंड लगे।
— बजे ग्लेन जैकमैन

बैकस्टिक्स घोंसले के लिए भी कठिन हैं।
— बरमार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.