How do you take a single line of input from the user in a shell script?

by on May 14, 2007 · 4 comments· LAST UPDATED May 14, 2007

in , ,

Q. I need to write a shell script to prompt databasename, username and password from the user. How do I take a single line of input from the user in a shell script?

A. You need to use read command in a shell script to read single line of input frm the user in a shell.

One line is read from the standard input (keyboard), or from file descriptor FD if the -u option is supplied, and the first word is assigned to the first NAME, the second word to the second NAME, and so on, with leftover words assigned to the last NAME.

Syntax:

read {variable-name}
read -p {'Prompt text'} {variable-name}

Read single line of input from the user and store to variable called dbname:
read dbname
OR
read -p 'Enter Database name : ' dbname

To display variable value, enter:
echo $dbname

Sample shell script

#!/bin/bash
read -p 'Enter mysql database name : ' dbname
read -p 'Enter username : ' dbuname
read -s -p 'Enter password : ' dbpass
mysql -uroot -p'Password'<<EOFMYSQL
CREATE DATABASE $dbname;
GRANT ALL ON $dbname.* TO $dbuname@localhost IDENTIFIED BY "$dbpass";
EOFMYSQL
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 4 comments… read them below or add one }

1 sujit November 13, 2007 at 6:38 am

thanks. this thing worked for my java apps.

Reply

2 Charanjit Singh December 18, 2009 at 11:11 am

Hi Vivek
Thanks for the tips this helps me lot.

Reply

3 Ashish July 27, 2011 at 8:50 am

thanks

Reply

4 Boopathy July 13, 2014 at 7:55 am

Hi , If we need to get amny words as a input from console . What is the option ?
For example ..
read -p ” Enter your Message” message

user input is here ..
Hr meeting today at 11.30 PM . Please gather.

Reply

Leave a Comment

Tagged as:

Previous Faq:

Next Faq: