Shell scripting (BASH) : How to accept password in script

You can use read command with -s option, which causes input coming from a terminal to not be echoed. This is useful to verify password or something else.

Advertisement

One line is read from the 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. Only the characters found in $IFS are recognized as word delimiters. If no NAMEs are supplied, the line read is stored in the REPLY variable. If the -r option is given, this signifies `raw’ input, and backslash escaping is disabled. The -d option causes read to continue until the first character of DELIM is read, rather than newline. If the -p
option is supplied, the string PROMPT is output without a trailing newline before attempting to read. If -a is supplied, the words read are assigned to sequential indices of ARRAY, starting at zero. If -e is supplied and the shell is interactive, readline is used to obtain the line. If -n is
supplied with a non-zero NCHARS argument, read returns after NCHARS characters have been read. The -s option causes input coming from a terminal to not be echoed.

Following script, demonstrate this concept:

1) Download/view the passwordscript.bash script

2) Save the changes and execute script:
$ chmod +x passwordscript.bash
$ ./passwordscript.bash

🥺 Was this helpful? Please add a comment to show your appreciation or feedback.

nixCrat Tux Pixel Penguin
Hi! 🤠
I'm Vivek Gite, and I write about Linux, macOS, Unix, IT, programming, infosec, and open source. Subscribe to my RSS feed or email newsletter for updates.

3 comments… add one
  • BuGoFf Dec 8, 2006 @ 23:42

    Is it possible to put the passwordscript.bash online again?

  • 🛡️ Vivek Gite (Author and Admin) nixCraft Dec 9, 2006 @ 0:45

    Hello,

    Link is fixed. Sorry for any inconvenience!
    http://bash.cyberciti.biz/script/passwordscript.bash.php

    Regards,

    Vivek

  • ua sh May 14, 2013 @ 7:12

    echo “Enter user name”
    read a
    grep $a /etc/passwd > aa.txt
    if [ -s aa.txt ]
    then
    echo “Authentic User”

    who>bb
    grep $a bb >cc.txt
    if [ -s cc.txt ]
    then
    echo ” The user is logged in”

    echo “Time of login :”
    who | cut -d “-” -f3 | cut -d ” ” -f2
    fi
    else
    echo “The user is not logged in”
    fi

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre> for code samples. Your comment will appear only after approval by the site admin.