≡ Menu

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.

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

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 3 comments… add one }

  • BuGoFf December 8, 2006, 11:42 pm

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

  • nixCraft December 9, 2006, 12:45 am

    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 am

    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 Comment