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

Posted on in Categories Linux, Shell scripting, Sys admin, Tips, UNIX last updated December 9, 2006

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

3 comment

  1. 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