मारपीट में।
मुझे यह निर्धारित करने में कुछ कठिनाई हो रही है कि मुझे क्या उपयोग करना चाहिए?
मेरी सभी लिपियाँ ">> / dev / stderr" का उपयोग करती हैं
बैश प्रॉम्प्ट पर, अगर मैं कोशिश करूँ:
echo test >>/dev/stderr
काम
echo test >> /dev/stderr
करता है
echo test >/dev/stderr
काम
echo test > /dev/stderr
करता है काम करता है
echo test >>&2
विफल रहता है!
echo test >> &2
विफल रहता है!
echo test >&2
कार्य करता है
echo test > &2
!
मैं अपनी सभी लिपियों को बदलने के लिए तैयार हूं >&2
।
ऐसा लगता है कि ssh (बाद su SomeUser
) पर भी बड़ा असर पड़ेगा जहां >>/dev/stderr
काम नहीं किया जाएगा (अनुमति से वंचित), केवल >&2
काम करेगा।
su
समस्या होती है, इस सवाल को अपडेट किया गया
su -c 'some command'
, उस आदेश के द्वारा चलाया जाता है /bin/sh
, नहीं bash
, तो bash- विशिष्ट व्यवहार (जैसे कि /dev/stderr
अनुपलब्ध उद्देश्यों के लिए अनुकरण जब उपलब्ध नहीं है) मौजूद होने की गारंटी नहीं है।