Linux Lite Forums

Development => Scripting and Bash => Topic started by: jacatone on August 30, 2015, 04:13:56 AM

Title: How do I get long command lines to wrap to the next line?
Post by: jacatone on August 30, 2015, 04:13:56 AM
I'm using color in my bash shell but can't get the text to drop to the next line below. Could someone tell me what's wrong here?

export PS1="\[\e[1;31m[\[email protected]\h \W]\$ \e[m "
Title: Re: How do I get long command lines to wrap to the next line?
Post by: misko_2083 on August 30, 2015, 05:42:14 PM
I'm using color in my bash shell but can't get the text to drop to the next line below. Could someone tell me what's wrong here?

export PS1="\[\e[1;31m[\[email protected]\h \W]\$ \e[m "
If you want to move the prompt sse the \n switch at the end
Code: [Select]
export PS1="\e[1;31m[\[email protected]\h \W]\$ \e[m \n"
Title: Re: How do I get long command lines to wrap to the next line?
Post by: jacatone on August 30, 2015, 08:43:09 PM
Actually, I meant after the $ sign then drop down below to the next line like it would if I didn't add any color.

[email protected]:~$ 64dfg646df4g654fg654d6fg64fd64g6fd4g64fd64g6df4g6fd
5g64fd64g665df4g646sd465464ds646d5f4
Title: Re: How do I get long command lines to wrap to the next line?
Post by: misko_2083 on August 31, 2015, 08:45:33 AM
Oh, sorry mate. I was too tired last night.  :)
Let's see...
The colors aren't properly escaped.
Variable expansion and the \[ \] escapes around them make them not count as character positions and the cursor position is not wrong.
This is the proper way to do it:
\[\e[1;31m\]foo
or
\[\e[1;31m\]\[$variable\]

If you want to set it up like this
[email protected]:~$ command...
Code: [Select]
export PS1="\[\e[1;31m\]\[\[email protected]\h:\w\$\] \[\e[0m\] "You could also set it in two colors
[email protected]: ~$
Code: [Select]
export PS1="\[\e[1;31m\]\[\[email protected]\h\] \[\e[0;32m\]\[\W\$\] \[\e[0m\] "From your first example I thought you were going to use the [ ] brackets:
[[email protected]~]$
Code: [Select]
export PS1="\[\e[1;31m\][\[email protected]\h\w]\$ \[\e[0m\] "
Title: Re: How do I get long command lines to wrap to the next line?
Post by: jacatone on August 31, 2015, 03:43:41 PM
Ah, it's getting there. It now types over anything added to the second drop down line rather than just continuing on.

[email protected] ~$  54df5dddddddddddddddddddddddddddddddddddddddddddddddddddd
222222dddddddddddddd

should be,

[email protected] ~$  54df5dddddddddddddddddddddddddddddddddddddddddddddddddddd
dddddddddddddd222222
Title: Re: How do I get long command lines to wrap to the next line?
Post by: shengchieh on September 04, 2015, 10:52:23 PM
For references go to

http://shengchieh.50webs.com/tuxslinks.html#Console%20Commands

Look at scripts???

Sheng-Chieh