>
पुनर्निर्देशक आदेश के उत्पादन (लिखते हैं stdout
, नहीं stderr
- आप का उपयोग2>
उस के लिए) के बाद निर्दिष्ट फ़ाइल के लिए। यदि यह पहले से मौजूद है, तो फ़ाइल अधिलेखित हो जाएगी।
यह व्यवहार आपके पहले कमांड के लिए उपयोगी है: यदि कोई मौजूदा फ़ाइल है, तो उसे हटा दिया जाना चाहिए और नए के साथ बदल दिया जाना चाहिए।
हालांकि, जैसा कि आपको पिछले वाले को बदलने के बजाय सभी और आउटपुट को जोड़ने की आवश्यकता है, आपको एपेंड-रीडायरेक्टर का उपयोग करने की आवश्यकता है >>
। यदि यह अभी तक मौजूद नहीं है, तो यह एक फ़ाइल बनाएगा, लेकिन यदि यह पहले से मौजूद है, तो फ़ाइल में पुनर्निर्देशित आउटपुट को जोड़ देता है।
और कृपया |
एक लाइन में कई कमांड लिखने के लिए पाइप का उपयोग न करें , जो stdout
दूसरे कमांड के इनपुट में पहले कमांड के आउटपुट ( ) को रीडायरेक्ट करेगाstdin
) में ।
आप अर्धविराम का उपयोग कर सकते हैं (;
) का उपयोग बस बैश को एक के बाद एक कमांड निष्पादित करने के लिए कह सकते हैं, जैसे कि यह एक स्क्रिप्ट फ़ाइल थी। यदि कोई आदेश विफल रहता है (रिटर्न कोड 0 नहीं है), तो शेष कमांड अभी भी निष्पादित होते हैं।
या आपने लॉजिक ऑपरेटर और ( &&
) या OR ( ||
) चुना हो सकता है :
यदि आप &&
दो कमांड्स को जोड़ने के लिए उपयोग करते हैं, तो दूसरा केवल तभी निष्पादित किया जाएगा, यदि पहला सफल होता है (रिटर्न कोड 0 है)। यदि यह विफल रहता है, तो निम्न में से कोई भी आदेश नहीं चलेगा। लेकिन केवल दूसरा आदेश चलाता है, तो पहले एक में विफल रहा है (वापसी कोड 0 नहीं है)!
||
तो आपके मामले में मैं आपको अर्धविराम का उपयोग करने की सलाह दूंगा:
md5sum firefox.tar.gz > sha.txt ; sha1sum firefox.tar.gz >> sha.txt ; sha512sum firefox.tar.gz >> sha.txt
{}
या माना जाता है()
? धन्यवाद।