What does -n do in bash scripting

What does the -n after the echo mean and do and what happens if i exclude it?

echo -n "Enter no 1 : "
read no_1
echo -n "Enter no 2 : "
read no_2
echo -n "Enter no 3 : "
read no_3
echo $no_1 > no_file
echo $no_2 >> no_file
echo $no_3 >> no_file
sort -n -r no_file |sed -n '1p’

Open in new window

Who is Participating?
Joe JenkinsConnect With a Mentor Commented:
It literally means, "Do not output the following trailing new line"

Bash man echo

If you leave it off it should go to the next line after the colon.  Leaving the -n in would allow the output to stay on the same page.

The output from your script would look like this with it:
Enter no 1 : <input>
Echo no 2 : <input>
Echo no 3 : <input>

Without it:
Enter no 1 :
Echo no 2 :
Echo no 3 :

I don't have access to a linux box at the moment but I'm fairly certain that is how it will output.
epichero22Connect With a Mentor Commented:
-n prevents the script from outputing the trailing newline, and I believe it will allow the user to input data on the same line rather than on a new line, if that's automatically generated.  Example:

Enter no 1 : ___


Enter no 1 :
Joe JenkinsCommented:
Ahh, I was typing my response while epichero was posting their comment.
Mark_CoAuthor Commented:
Thank you both some much. I have several questions on the subject
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.