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


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.