2010-04-15 8 views
6

क्यों
$ गूंज '-n'
हालांकि -n उद्धरण के भीतर लिखा है टर्मिनल पर -n लिखना नहीं करता है?न्यू लाइन दमन गूंज

+0

आप किस भाषा का उपयोग कर रहे हैं? – thecoshman

+0

मैंने अनुमान लगाया कि यह एक शेल वाक्यविन्यास प्रश्न है (यानी, बैश या जो कुछ भी)। – Pointy

उत्तर

8

क्योंकि कोट्स को खोल द्वारा संसाधित किया जाता है और echo कमांड को -n प्राप्त होता है। यदि आप -n गूंजना चाहते हैं, तो आप उदा। printf '%s\n' -n

+2

यह शर्म की बात है '-' (विकल्पों का अंत) समर्थित नहीं है :( – extraneon

+0

बैश के साथ निम्नलिखित कार्य: echo -e -n \\ c – Tino

0

उद्धरण मदद नहीं करते क्योंकि ... ओह, समझाना मुश्किल है। शेल को "गूंज" कमांड का मूल्यांकन करने से पहले कोट्स को बंद कर देता है, इसलिए उस समय तक वे कोई फर्क नहीं पड़ता।

इस प्रयास करें:

echo - -n 

यही काम कर (मैं उबंटू लिनक्स चल रहा हूँ) के रूप में दर्ज नहीं किया है, लेकिन echo लगभग निश्चित रूप से है एक अंतर्निहित जो कुछ भी खोल आप उपयोग कर रहे हैं, इसलिए आदमी पेज है वैसे भी संदिग्ध। यह मेरे लिए काम करता है। (मैं zsh चला रहा हूं क्योंकि मैं वास्तव में सौहार्दपूर्ण और परिष्कृत हूं)।

संपादित करें: ठीक है ऐसा लगता है कि bash निर्मित edit इस तरह से व्यवहार नहीं करता है। मुझे नहीं पता कि क्या सुझाव देना है; इस:

echo '' -n 

आप "-n" एक अंतरिक्ष, जो (आप क्या कर रहे के आधार पर) से पहले ठीक हो सकता है दे देंगे।

+0

मेरे लिए काम नहीं करता है। आउटपुट '- -एन' – extraneon

+0

मेरे लिए यह > गूंज - -0 - -n –

+0

हम्म, जैसा कि मैंने अभी एक संपादन में नोट किया है, यह शायद शैल से खोल में भिन्न होता है। – Pointy

2

आपको जितना संभव हो सके पोर्टेबल printf का उपयोग करने का प्रयास करना चाहिए।

0

नहीं Quiete वहाँ की कोशिश कर सकते:

echo -e 'a-n\b\b\b ' 
-n 

आश्चर्यजनक रूप से इस काम करता है:

echo -e '-n\b' 
-n 

और यहाँ एक समाधान मैं समझा सकता है:

echo "foobar" | sed 's/.*/-n/' 
-n 
,210
2

मैंने पाया कि निम्न सिर्फ पार्टी में काम करता है:

echo -n PRINT_THIS 

तो, आप पहली जगह -n रखना चाहिए।

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