Linux/Unix Shell Scripting - asignar a variable comando shell

   
Vista:

asignar a variable comando shell

Publicado por Francisco (11 intervenciones) el 12/01/2012 14:53:15
Buenas tardes, tengo un listado de usuarios con sus respectivas claves, y tengo que comprobar que el usuario que he introducido previamente por consola exista o no,
entonces para ello pense en hacer lo siguiente

1
2
3
4
5
6
7
8
9
10
11
echo "ENTRAR EN SHELL:"
echo Introducir Nombre:
read nameuser
 
if [ $nameuser= ` cut -d: -f1 fusuarios ` ]
	 then
	   echo "Usuario existente, introduce su clave:"
            read clave
	 else
            echo "mal"
fi

Me da problemas ya sea, del tipo, unario, o porque hay muchos argumentos m pueden ayudar??
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

asignar a variable comando shell

Publicado por xve (254 intervenciones) el 12/01/2012 18:01:07
Hola Francisco, de la manera que lo tienes, no te puede funcionar, ya que la instrucción:
` cut -d: -f1 fusuarios ` devuelve el listado de todos los usuarios... te faltaria un grep...

Este código me ha funcionado:
1
2
3
4
5
6
7
8
9
10
11
12
13
echo "ENTRAR EN SHELL:"
echo Introducir Nombre:
read nameuser
 
buscarArchivo=`cut -d: -f1 fusuarios | grep $nameuser`
 
if [ $buscarArchivo ]
then
        echo "Usuario existente, introduce su clave:"
        read clave
else
        echo "mal"
fi

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

asignar a variable comando shell

Publicado por caic (82 intervenciones) el 13/01/2012 10:17:09
Hola,

Y un truquillo para que no se vea la contraseña:

stty -echo
echo "Usuario existente, introduce su clave:"
read clave
stty echo

De esta forma la contraseña no se mostrará en pantalla.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

asignar a variable comando shell

Publicado por Fran (11 intervenciones) el 14/01/2012 07:40:23
Buenos dias, sin duda el codigo funciona a la perfeccion, asi que muchisimas gracias.
Mi idea inicial con diferentes pruebas era mas o menos esa, pero hacia un grep y despues el cut por separado, usando la variable a la q asignaba el cut, en el if, comparandola con el nombre de usuario introducido.
Lo que si tengo es una ultima duda, cuando usas tanto cut... | grep .. como lo interpereto, perdona mi ignorancia pero me estoy iniciando y m cuesta aun un poco.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

asignar a variable comando shell

Publicado por xve (254 intervenciones) el 14/01/2012 22:02:16
Hola Fran, te comento sin problema... el pipe (|), lo que hace, es que pasa el resultado de la instrucción de la izquierda a la instrucción de la derecha...
Por ejemplo, esta linea:
1
cut -d: -f1 fusuarios | grep pepito

es lo mismo que estas dos:
1
2
cut -d: -f1 fusuarios > listadoUsuarios
grep pepito listadoUsuarios

Puedes poner tantas tuberias/pipes (|) com desees...

Espero que te sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

asignar a variable comando shell

Publicado por fRAN (11 intervenciones) el 15/01/2012 14:14:23
Buenas tardes xve, gracias por tomarte tantas molestias, me aclaraste muchisimo.
Te ire mandando algunas dudas sucesivas si n te importa, porque ahora estoy controlando una auditoria del movimiento de los usuarios,.
Muchismas gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

asignar a variable comando shell

Publicado por Fran (11 intervenciones) el 15/01/2012 22:12:08
Ufff que locura, crear un minishell, y que el prompt me muestre el usuario que esta ejecutando.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar