क्या करता है ;; श में करें?


28

यदि मैं a;;bश में चलाने की कोशिश करता हूं, तो मुझे यह त्रुटि मिलती है:

sh: <number>: Syntax error: ";;" unexpected

अगर मैं कोशिश करता a;;;bहूं कि मुझे वही त्रुटि मिले, ;;;बजाय इसके ;;, तो मुझे लगता है कि ;;इसका मतलब कुछ है, हालांकि मुझे नहीं पता कि इसका क्या मतलब है।

यहाँ एक उदाहरण है:

$ echo A;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A;;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A; ;echo B
sh: 1: Syntax error: ";" unexpected

यहां आप यह देख सकते हैं कि जब मैं त्रुटि के ; ;बजाय उपयोग करता हूं तो ;;यह अलग है, इस तथ्य से संबंधित है कि मैंने ;पहले एक कमांड के बिना उपयोग किया था। ;;एक अलग ऑपरेटर लगता है, हालांकि मुझे नहीं पता कि यह किस पर लागू होता है।


1
के कारण Google पर खोज नहीं कर सकते हैं ;;, और यहां एक डुप्लिकेट नहीं मिला है।
इकोन्स

3
Googled "श डबल सेमीकोलन" ... stackoverflow.com/questions/16905183/…
muru

@ ममरू हालांकि यहां पोस्ट नहीं किया गया लेकिन मुझे लगता है।
इकोन्स

@ ΥριΈνσταντόποςλο what कि SymHHound क्या है Symhound.com के लिए
जो

जवाबों:


47

;;POSIX गोले में case... कथनों को अलग करता है esac:

case foo in (a) cmd1; cmd2 ;; (b) cmd3; cmd4; esac

एक कमांड के बारे में जानने के लिए, आप चला सकते हैं man that-command। यदि आपका पेजर है less, तो आप दबाकर मैन पेज पर खोज सकते हैं /

यहाँ, आप दौड़ेंगे man shऔर खोज करेंगे ;;। कुछ गोले अन्य ऑपरेटरों अलग करने के लिए समर्थन caseमें बयान (जैसे ;&में ksh93/ zsh/ bash/ mksh, &|में zsh/ mksh, ;;&में bash)।


1
मैंने अभी यहाँ पोस्ट किया है क्योंकि मुझे लगता है कि यहाँ वैसे भी एक ऐसा प्रश्न होना चाहिए, क्योंकि यहाँ किसी को भ्रमित होने पर स्पष्ट तरीके से समझाया जा सकता है।
इकोन्स

2
अगर बहुत सारी हिट हैं, या आप के साथ खोज के लिए भागने के नियमों को याद नहीं कर सकते हैं less, तो यह कभी-कभी आसान होता है$ man bash|grep -C1 ';;'
17:20

आपके पास (पहले a)और नहीं होना चाहिए b), और आपको ;;बाद की आवश्यकता हैcmd4
बरमार

@ बरमार, वह वाक्य रचना POSIX है। बॉर्न शेल में, आपको (वास्तव में छोड़ना था , लेकिन आपको अभी भी ;;पहले की आवश्यकता नहीं थी esac(हालांकि यह नुकसान नहीं पहुंचा)।
स्टीफन चेज़लस

धन्यवाद। मुझे POSIX शेल में उस परिवर्तन के बारे में नहीं पता था, या यह कि अंतिम ;;वैकल्पिक था।
बमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.