2017-08-08 2 views
6

मैं बैश वैरिएबल में टेक्स्ट फ़ाइल सामग्री को पढ़ना चाहता हूं, अगर फ़ाइल मौजूद नहीं है तो त्रुटि संदेश को दबाकर। POSIX में, मैं"ऐसी कोई फ़ाइल या निर्देशिका" त्रुटि दबाने के दौरान चर में फ़ाइल पढ़ें

var=$(cat file 2>/dev/null) 

करना होगा लेकिन मैं (जैसे How to read a file into a variable in shell पर) पढ़ा है कि यह बैश में बिल्ली के अनुपयोगी उपयोग है। तो, मैं उन कोशिश कर रहा हूँ:

var=$(< file 2>/dev/null) 
var=$(< file) 2>/dev/null 

लेकिन यह पहली बार किसी मौजूदा फ़ाइल को नहीं पढ़ता है, और दोनों प्रिंट -bash: file: No such file or directory यदि फ़ाइल मौजूद नहीं है। यह क्यों काम नहीं करता है? (विशेष रूप से: क्या पूरी तरह से पहले एक टूट जाता है?)

क्या काम करता है यह है:

{ var=$(< file); } 2>/dev/null 

लेकिन यह बदसूरत और बोझिल है। तो, वहाँ एक अच्छा सिंटैक्स है, या यह बिल्ली के बाद वैध का उपयोग है?

उत्तर

संबंधित मुद्दे