bash - मारुति सुजुकी ईको 7 सीटों वाले डीजल मूल्य




बैश प्रिंट में इको न्यूलाइन शाब्दिक \ n (10)

बैश में, यह कोशिश की:

echo -e "hello\nworld"

लेकिन यह एक नई लाइन मुद्रित नहीं करता है, केवल \n । मैं इसे नई लाइन कैसे प्रिंट कर सकता हूं?

मैं उबंटू 11.04 का उपयोग कर रहा हूं।


आप इसके बजाय printf उपयोग कर सकते हैं:

printf "hello\nworld\n"

printf echo से अधिक लगातार व्यवहार है। echo का व्यवहार विभिन्न संस्करणों के बीच बहुत भिन्न होता है।


आप ब्रेसिज़ के साथ इको का भी उपयोग कर सकते हैं,

$ (echo hello; echo world)
hello
world

उन लोगों के लिए यहां एक और प्रविष्टि जिन्होंने इन समाधानों में से किसी के साथ काम नहीं किया है, और उनके कार्य से वापसी मूल्य प्राप्त करने की आवश्यकता है:

function foo()
{
    local v="Dimi";
    local s="";
    .....
    s+="Some message here $v $1\n"
    .....
    echo $s
}

r=$(foo "my message");
echo -e $r;

केवल इस चाल ने एक लिनक्स में काम किया जो मैं इस बैश के साथ काम कर रहा था:

GNU bash, version 2.2.25(1)-release (x86_64-redhat-linux-gnu)

उम्मीद है कि यह किसी भी समस्या के साथ किसी की मदद करता है।


ऑफ मौके पर कि कोई व्यक्ति खुद को दीवार के खिलाफ अपने सिर को मारने का प्रयास कर रहा है, यह पता लगाने की कोशिश कर रहा है कि क्यों एक सहकर्मी की लिपि न्यूलाइन प्रिंट नहीं करेगी, इसके लिए देखें ->

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

echo $(GET_RECORDS);

जैसा कि उपर्युक्त में है, विधि की वास्तविक दौड़ स्वयं को एक गूंज में लपेटा जा सकता है जो विधि में हो सकता है कि किसी भी echos supersed। जाहिर है, मैंने इसे संक्षिप्तता के लिए पानी दिया था, यह स्पॉट करना इतना आसान नहीं था!

फिर आप अपने साथियों को सूचित कर सकते हैं कि कार्यों को निष्पादित करने का एक बेहतर तरीका इस तरह होगा:

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

GET_RECORDS;

क्या यह हर जगह काम करता है?

echo "Hello
World"

प्रयत्न

echo -e "hello\nworld"
hello
world

नैनो संपादक में मेरे लिए काम किया।


यह बेहतर किया जा सकता है

x="\n"
echo -ne $x

-e विकल्प बचने के अनुक्रम के लिए बैकस्लाश की व्याख्या करेगा
-एन विकल्प आउटपुट में पिछली नई लाइन को हटा देगा

पीएस: कमांड इको का उत्पादन हमेशा आउटपुट में पिछली नईलाइन सहित होता है, इसलिए उस चीज़ को बंद करने की आवश्यकता होती है (और इसे कम भ्रमित कर दें)


यह रास्पियन में मेरे लिए काम करता है,

echo -e "hello\\nworld"


echo $'hello\nworld'

प्रिंट

hello
world

$'' स्ट्रिंग्स एएनएसआई सी उद्धरण का उपयोग करें:

फॉर्म $' string ' शब्द विशेष रूप से इलाज किए जाते हैं। शब्द स्ट्रिंग तक फैलता है, बैकस्लैश-एस्केक्ड वर्णों को एएनएसआई सी मानक द्वारा निर्दिष्ट के रूप में प्रतिस्थापित किया जाता है।


str='hello\nworld'
$ echo | sed "i$str"
hello
world




newline