Variables overwriting text problem with “echo” in Bash

后端 未结 2 1847
余生分开走
余生分开走 2020-11-27 22:53

I use OS X 10.6.5, Bash.

When I run this:

echo $IP; echo of; echo $IPLINES

I get this output:

219.80.4.150:3128
of
         


        
相关标签:
2条回答
  • 2020-11-27 23:05

    It would appear that there is a carriage return (\r) at the end of $IP.

    0 讨论(0)
  • 2020-11-27 23:06

    A wild guess here: you are extracting the IP variable from a .txt file -- if that's a Windows file, or is encoded Windows-style, lines end with \r\n. You take the newline away, but what if there's a \r in it that's making you go back to the beginning of the line?

    Quick dirty fix with no questions asked: use echo -n, it supresses the newline at the end of the echoed text.

    echo -n $IP; echo -n of; echo -n $IPLINES
    

    If the problem persists, it's probably what I said above. Try right-trimming $IP.

    EDIT: didn't see the OSX part, sorry. In OSX, lines end with \r -- that must be the issue.

    0 讨论(0)
提交回复
热议问题