chmod + साइलेंट मोड + कैसे त्रुटि के बावजूद बाहर निकलने का कोड 0 बल


37

क्या यह संभव है कि chmod निष्पादित करें और कमांड से त्रुटि को अनदेखा करें

उदाहरण (टिप्पणी file.txt उदाहरण दिखाने के लिए exsist नहीं)

जब मैं टाइप करता हूँ

chmod 777 file.txt

मुझे आउटपुट पर त्रुटि मिलती है

  chmod: cannot access file.txt : no such file or directory

इसलिए मैं निम्नलिखित के रूप में कमांड में एफ-एफ झंडा जोड़ता हूं: (केस को दिखाने के लिए फ़ाइल मौजूद नहीं है)

  chmod -f 777 file.txt
  echo $?
  1

लेकिन उदाहरण से चामोद वापसी 1

कृपया सलाह दें कि त्रुटि के बावजूद chmod कमांड को कोड से बाहर निकलने के लिए कैसे बाध्य किया जाए


क्यों उखाड़ा जाता है? स्क्रिप्ट में 2>/dev/nullउपयोग और उपयोग के साथ किसी भी अवांछित उत्पादन को set -eदबाएं।
ott--

जवाबों:


47

कृपया सलाह दें कि त्रुटि के बावजूद chmod कमांड को कोड से बाहर निकलने के लिए कैसे बाध्य किया जाए

chmod -f 777 file.txt || :

:यदि यह chmodविफल रहता है , तो इसका अर्थ है, अशक्त कमांड निष्पादित करेगा । चूंकि अशक्त कमांड कुछ भी नहीं करता है, लेकिन हमेशा सफल होता है, इसलिए आपको 0 से बाहर निकलें कोड दिखाई देगा।


25
एक आकस्मिक उपयोगकर्ता के लिए बराबर, लेकिन अधिक पठनीय का उपयोग करना हैchmod -f 777 file.txt || true
ओरियन

2
@orion निर्भर करता है। यदि कोई परिचित है, तो :समान रूप से पठनीय लगता है।
देवनुल

2
लेकिन अगर हम अधिक पठनीय कोड लिखते हैं जो नोज पढ़ सकता है, तो हम अपनी नौकरी कैसे रखेंगे?
निक टी।

1
शेफ डेवलपर यहाँ, बस कुछ महत्वपूर्ण शब्दों को छोड़ने के लिए दूसरों को मदद करने के लिए जो मेरे पास एक ही मुद्दे का सामना करना पड़ा है। shell_out! (cmd + '|| true') एक लाइफसेवर है, जब आप इंस्टॉलेशन के प्रति उदासीन होने का प्रयास कर रहे हैं और शेल_आउट को अनदेखा करने की आवश्यकता है! गलतियों को संकलित करें।
जैकहैंस

53

chmod -f 777 file.txt || true

जैसा कि यह एक है, यदि कोई कथन सत्य है, तो वापसी सत्य है। इसका परिणाम शून्य की स्थिति से बाहर निकलता है।


3
मैंने इस उत्तर को पढ़ने योग्य कोड लिखने के अभ्यास को बढ़ावा देने के विकल्प के रूप में जोड़ा।
गेरी

2
सफल ||होने पर सही शाखा को क्रियान्वित नहीं किया जाएगा chmod... ऐसा नहीं है कि यह यहाँ एक कम्प्यूटेशनल अंतर के बहुत कुछ बनाता है।
धग

उसके लिये आपका धन्यवाद। मुझे विश्वास नहीं हो रहा है कि मैंने गड़बड़ कर दी। :) सुधार के साथ संपादित।
गेरी

5

मैंने हमेशा प्यार किया

 chmod -f 777 file.txt || exit 0

3
यह उस समय स्क्रिप्ट को रोक देता है जब चामोड असफल हो गया था। सवाल यह था कि स्क्रिप्ट को जारी रखने के लिए जब इसके साथ कोई समस्या थी (त्रुटि को अनदेखा करें)।
वेदा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.