elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [DUDA] Cadena de caracteres
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] Cadena de caracteres  (Leído 1,602 veces)
syncro_7

Desconectado Desconectado

Mensajes: 21


Ver Perfil
[DUDA] Cadena de caracteres
« en: 11 Noviembre 2015, 17:31 pm »

Hola a todos tengo un ejercicio que completar , y no sé por donde tirar ya, os comento el ejercicio:

Script que pida un usuario por teclado e informe mediante un mensaje de si ese usuario está conectado al Sistema, de no estarlo que muestre un mensaje alternativo informándonos de ello

Mi código es el siguiente:

Código
  1. #! /bin/bash
  2.  
  3. function error()
  4. {
  5.        echo "------Lista de errores --------"
  6.        echo "1) No puedes introducir nada en vacio"
  7.        echo "2) Debes de introducir un usuario real"
  8.        exit;
  9. }
  10.  
  11. ##Pedir al usuario y guardar la informacion en una variable
  12. read -p "Introduce un nombre de usuario:"  usuario
  13.  
  14. if [ $(who) = "$usuario" ];then
  15.       echo "El usuario esta actualmente conectado al sistema"
  16. else
  17.       error;
  18. fi
  19.  

Mi problema es que quiero comparar la variable $usuario que es la que recojo del usuario que está introduciendo el nombre, y compararla como cadena de caracteres con el resultado del comando who ¿Alguna sugerencia?

Gracias.


En línea

yMk369

Desconectado Desconectado

Mensajes: 31


人は何かを成す為に生を受け、成し終えた時、死んで行く


Ver Perfil
Re: [DUDA] Cadena de caracteres
« Respuesta #1 en: 16 Noviembre 2015, 05:37 am »

Hola, apenas me dio tiempo de hacer el script y como vez hay puse varios elementos que no son necesarios (como los diferentes "for", o tuberias) investiga y suerte.

Código
  1. #!/bin/bash
  2.  
  3. #Espero que sepas acerca de declarar varibles en bash y por que.
  4. array=()
  5. N=1
  6.  
  7. echo "Introduce un nombre de usuario:"
  8.  
  9. read user
  10.  
  11. #Numero de usuarios conecados
  12. num=$( who | nl | sed -n '$p' | awk '{print $1}' )
  13.  
  14. # nl ---> listar.
  15. # sed -n '$p' ---> imprimir la ultima fila.
  16. # awk '{print $1}' ---> imprimir la primera columna.
  17.  
  18.  
  19.  
  20.  
  21. #introducir los valores en un array, es completamente incesario ya que aqui podriamos comprar de una vez.
  22. #pero bueno hagamoslo.
  23.  
  24. for((x=0; x < $num; ++x))
  25. do
  26.  
  27.        usu=$( who  | sed -n "$N p" | awk '{print $1}' )
  28.  
  29.  
  30.        array[$x]=$usu
  31.  
  32.  
  33.        ((N++))
  34.  
  35. done
  36. #ojo:  sed -n "$N p" ---> escapa con comillas dobles, (investiga por que y me dices)  pero si fuese un numero escaparia asi: sed -n '3 p' << para mostrar la fila 3>>
  37.  
  38.  
  39.  
  40. HH=${#array[*]}
  41. # ${#array[*]} ---> para ver el numero total de elementos de un arreglo.
  42.  
  43.  
  44. #Como ves este es otra manera de usar for
  45. for f in $(seq 0 $HH); do
  46.        if [ "${array[$f]}" == "$user" ]; then
  47.                echo "Ah! Cabron, ya estas logueado"
  48.                exit 0
  49.        fi
  50. done
  51.  
  52.  
  53. echo "Pues no estas logueado"


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cadena de caracteres
Programación C/C++
Ander123 1 2,347 Último mensaje 6 Septiembre 2012, 14:15 pm
por avesudra
Duda de cadena de caracteres en C « 1 2 »
Programación C/C++
Ixcal 13 5,771 Último mensaje 28 Septiembre 2012, 23:05 pm
por leosansan
Duda sobre el control de la longitud de una cadena de caracteres
Programación C/C++
seryioo 2 1,757 Último mensaje 17 Agosto 2015, 10:22 am
por seryioo
Duda sobre problema de cadena de caracteres.
Programación C/C++
rafacg96 1 1,292 Último mensaje 2 Diciembre 2015, 07:11 am
por class_OpenGL
Duda sobre cadena de caracteres
Programación C/C++
Mika_50 5 1,987 Último mensaje 21 Enero 2016, 22:44 pm
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines