गैर-शून्य स्थिति कोड के साथ बाहर निकलने के लिए `कम` का कारण?


10

मैं निम्नलिखित कमांड संरचना रखना चाहेंगे:

command && check-status | less && followup-command

उपयोगकर्ता द्वारा बातचीत करते समय यह निष्पादन को रोक देगा less। उपयोगकर्ता को चलाने से lessरोकने के लिए गैर-शून्य स्थिति के साथ बाहर निकलने के लिए कैसे मजबूर किया जा सकता followup-commandहै?

मैं वर्तमान में उपयोग कर रहा हूं less 458 (POSIX regular expressions)

जवाबों:


14

सरल मामले में, आप lessSIGINT को नहीं संभालने के लिए कह सकते हैं , फिर Control-Cइसे मार देंगे और निकास कोड गैर-शून्य होगा। इस विकल्प के साथ करो -K

command && check-status | less -K && followup-command

कम के पुराने संस्करणों के लिए वर्कअराउंड के रूप में, आप कुछ ऐसा कर सकते हैं

command && bash -c 'trap "exit 1" int;check-status | less -K;' && followup-command

यदि आपके पास नहीं है -K, तो इसे छोड़ दें, लेकिन आपको संकेत देना होगा और फिर छोड़ देना होगा।


less -Kअभी भी मेरे लिए ctrl-c पर 0 एक्जिट कोड देता है। मैक पर v418 और लिनक्स पर v436। less -K test; echo $? => 0
मैट

यह दुख की बात है। यह मेरे लिए एक v458 और v481 पर ठीक है। मैन पेज के लिए -Kस्पष्ट रूप से बाहर निकलें कहते हैं ... (स्थिति 2 के साथ) । तुम्हारा है?
मयूह

आदमी केवल कहता है Causes less to exit immediately> greenwoodsoftware.com/less/news.443.html
मैट

मैंने कम उम्र के लिए वर्कअराउंड जोड़ा है।
मयूह

2
ध्यान दें कि अगर यह पहले से ही खत्म नहीं हुआ है तो ^Cवसीयत भी मार देगी check-status
स्टीफन चेज़लस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.