简体   繁体   中英

How to break a line (add a newline) in read -p in Bash?

How could I break a line using \n in read -p ?

For example

read -p "Please Enter the percent [30 between 100]\n The value is  Default = 80   :" scale_percent

I want \n to break a line but it doesn't work.

In echo I use -e and it breaks a line.

So I tried

read -ep 

to break the line but it didn't break the line. How can I do that?

And could you also please give me a good manual for read -p on the Internet because I couldn't find a nice one without a confusing description.

You can do it this way:

read -p $'Please Enter the percent [30 between 100]\x0a The value is  Default = 80   :' scale_percent

we use above syntax to insert hex values, we insert \\x0a which is the hexadecimal value of the newline character ( LF ). You can use same syntax above with echo to produce new lines, eg:

echo $'One line\x0asecond line'

This is a feature of BASH 2 , it is documented here , the $'' is used to translate all escape sequences inside it for its ascii transcription. So we could obtain the same result of example above, this way:

echo $'One line\nsecond line'

You can do the following to include variables in the prompt:

some_var='first line'
read -p "$some_var"$'\n'"second line " user_input
echo $user_input

(I wanted to make this a comment to Nelson's answer, but I could not have newlines for code readability.)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM