Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos


Objetivo: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Hola, ando haciendo un sistema que lee huellas desde un dispositivo UrU 4500 con una interfaz en gambas. El problema es que tengo un programa escrito en C que hace uso de la libreria "libfprint", y buenoel programa en C funciona bien cuando lo invoco desde la linea de comandos de PIDORA.

El problema surge cuando invoco el mismo programa desde gambas con "EXEC" o "SHELL" ya que si se invoca pero no me toma todos los argumentos como en la linea de comandos.

Ya he intentado varias notaciones,convertir el charset, hacer un shell script... y nada.

¿¿Alguna idea???


A continuación muestro el código:
' gambas class file

Library "libfprint:0"

Private Extern fp_init() As Integer
Private Extern fp_exit()


Public Sub _new()

End


Public Sub Form_Open()
Dim fecha As Variant
Me.Center

fecha = Format(Now, "dd/m/yy")
lcdfecha.Text = fecha

img_mostrar_scan.Hide

reanudar_button2.Hide

End


Public Sub scanear_dedo_button_Click()


label1.Text = "Coloque su dedo índice derecho en el lector" '
scan_dedo_imagen()


End

Public hproc As Process
Public Sub scan_dedo_imagen()

Dim devlib As Integer ' resultado de existencia de libreria de escaneo de huella


devlib = fp_init() ' deteccion de si tenemos libfprint instalada, para poder invocar el programa
If (devlib < 0) Then
Message.Error("Libreria de escaneo no instalada/detectada, favor revisar o reportar fallo")
Return
Else
Print "Liberia encontrada, command line utils can be invocado"

fp_exit()
Endif


hproc = Shell "/var/www/html/./pscript" For Input As "lectura"
'hproc = Exec ["/var/www/html/escanerdedo", "verify", "rojo.pgm"] For Input As "lectura" 'está es otra forma en que lo invoqué
'hproc = Shell"/var/www/html/escanerdedo verify rojo.pgm" For Input As "lectura" 'está es otra forma en que lo invoqué
End

Public Sub lectura_Read() ' Rutina que muestra la ultima salido de la consola a partir de la ejecucion lectura en hproc

Dim salida As String
Line Input #Last, salida
Print "-->" & salida
If salida == 1 Then
Message.Info("La Huella coincide")


label1.Text = ""

Endif

If salida == 0 Then 'este if mantiene recursiva la ejecucion de el proceso hasta que se valide la huella
Message.Info("La huella no coincide, vuelva a ponerla por favor")
hproc = Shell "/var/www/html/./pscript" For Input As "lectura"
'hproc = Exec ["/var/www/html/escanerdedo", "verify", "rojo.pgm"] For Input As "lectura" 'está es otra forma en que lo invoqué
'hproc = Shell"/var/www/html/escanerdedo verify rojo.pgm" For Input As "lectura" 'está es otra forma en que lo invoqué
Endif
End


Public Sub timReloj_Timer()

lcdhora.Value = Hour(Now)
lcdminutos.Value = Minute(Now)
lcdsegundos.Value = Second(Now)

End


Public Sub reanudar_button2_Click()

scan_dedo_imagen("ivanol")

End


última edición por ivanolete el Jueves, 08 Enero 2015, 21:10; editado 1 vez
Perfil MP  
Objetivo: Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Olvidé comentar que en el shell script esta escritá la misma linea


/.../escanerdedo verify rojo.pgm


Cuando invoco el shell script funciona bien

pero cuando lo invoco como proceso desde gambas no toma el argumento rojo.pgm

Perfil MP  
Objetivo: Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Hola ivanolete:

Citar:
rojo.pgm

¿donde esta ese archivo? Seguramente tienes que indicar la ruta donde este.

Objetivo: Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
A parte de lo que jsbsan te indica, el path "/var/www/html/./pscrip" es erróneo. Seguramente funcione, pero el . es una referencia al directorio actual, es decir al propio /var/www/html
por tanto es redundante. Bastaría con "/var/www/html/pscrip"

Saludos.

Perfil MP  
Objetivo: Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Gracias por sus respuestas.

rojo.pgm es un argumento que cae como "char" en el proceso escrito en C.


Y sip, graciar por hacer notar la redundancia, eso lo puse como muestra de las distintas formas en que escribí la ruta.


AHORA, LES COMENTO:

Acabo de experimentar que cuando soy super usuario en root y corro el shell script me trae la respuesta esperada, pero si invoco el mismo script como otro usuario me da el mismo comportamiento que con gambas. Ya le he concedido todos los permisos al proyecto y a los archivos involucrados, pero sigue sin darme el resultado esperado desde gambas.... ¿Alguna sugerencia con respecto a la ejecución de procesos con "EXEC" O "SHELL" sus permisos??


Perfil MP  
Objetivo: Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Eso es complicado de contestar sin conocer todo el script, entorno y demás... pero se soluciona ejecutándolo con permisos de super usuario.

Prueba aquello de

Shell "echo clavedeusuario | sudo -S script y parametros"

Naturalmente el usuario cuya clave envíes con echo ha de ser uno con permiso de sudoer.

Saludos

Perfil MP  
Objetivo: Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
He seguido tu sugerencia, Shordi.... Y ha funcionadoooooo

GRACIAS

así deje el escript:


#!/bin/bash
echo raspberry<PIPE>sudo -S /ruta_del_script/escanerdedo verify $1



Por el momento así lo dejaré , pero continuaré documentandome con respecto a los permisos de usuario en el sistema.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1694s (PHP: -38% SQL: 138%)
Consultas SQL: 24 - Debug off - GZIP Activado