En general, puede ver en la página de inicio de sesión, cada vez que ingresamos una contraseña, muestra un punto (•) o un asterisco (*) en lugar de una contraseña. Lo hacen porque para proteger nuestro sistema o cuenta. En tal caso, la página de inicio de sesión leerá la contraseña y, en lugar de la contraseña, mostrará un punto o un asterisco. Y en algunos casos, es posible que no aparezca un punto o un asterisco, lo que significa que no muestra nada en lugar de una contraseña.
Veamos cómo leer la contraseña sin hacer eco
Primero, cree un archivo llamado «User.sh» usando el siguiente comando
$ touch User.sh
Ahora abra «User.sh» en el editor de texto
$ nano User.sh
Ahora escriba el siguiente script bash en «User.sh»
#!/bin/bash echo "Enter Username : " # read username and echo username in terminal read username echo "Enter Password : " # password is read in silent mode i.e. it will # show nothing instead of password. read -s password echo echo "Your password is read in silent mode."
Nota: aquí se usa ‘-s’ para leer contraseñas porque leerá contraseñas en modo silencioso .
Ahora guarde el script bash anterior y ejecute «User.sh» siguiendo el comando
$ chmod +x ./User.sh $ ./User.sh
Producción :
Aquí, podemos ver claramente que la secuencia de comandos anterior leerá el nombre de usuario y la contraseña, pero no refleja la contraseña.
Veamos cómo leer la contraseña con ” * “
Ahora, cree un archivo llamado «Contraseña.sh» usando el siguiente comando
$ touch Password.sh
Ahora, abra «Contraseña.sh» en el editor de texto
$ nano Password.sh
Ahora escriba debajo del script bash en «Contraseña.sh»
#!/bin/bash password="" echo "Enter Username : " # it will read username read username pass_var="Enter Password :" # this will take password letter by letter while IFS= read -p "$pass_var" -r -s -n 1 letter do # if you press enter then the condition # is true and it exit the loop if [[ $letter == $'\0' ]] then break fi # the letter will store in password variable password=password+"$letter" # in place of password the asterisk (*) # will printed pass_var="*" done echo echo "Your password is read with asterisk (*)."
Nota: Aquí,
- IFS: es un separador de campo interno que se utiliza para dividir palabras o caracteres
- -r: Leerá la contraseña.
- -p: Hará eco de la entrada carácter por carácter.
- -s: Leerá la contraseña en modo silencioso.
- -n: No imprime el salto de línea final.
Ahora guarde el script bash anterior y ejecute «Contraseña.sh» con el siguiente comando
$ chmod +x ./Password.sh $ ./Password.sh
Producción :
Aquí, podemos ver claramente que el script anterior leerá el nombre de usuario y la contraseña con un asterisco (*)
Publicación traducida automáticamente
Artículo escrito por thesahilrai y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA