Foros del Web » Administración de Sistemas » Unix / Linux »

llamar ejecutable desde archivo bash con parametros

Estas en el tema de llamar ejecutable desde archivo bash con parametros en el foro de Unix / Linux en Foros del Web. buenas gente del foro, no estoy seguro de que este tema valla aqui puesto que estoy trabajando con windows pero lo que quiero hacer es ...
  #1 (permalink)  
Antiguo 16/08/2012, 23:14
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Pregunta llamar ejecutable desde archivo bash con parametros

buenas gente del foro, no estoy seguro de que este tema valla aqui puesto que estoy trabajando con windows pero lo que quiero hacer es adaptar un bash (de linux) paraq ue funcione, tengo el siguiente codigo:

Cita:
#!/bin/bash
################################################## ##################
# Prey Webcam Module Windows Functions - by Tomas Pollak (bootlog.org)
# URL: http://preyproject.com
# License: GPLv3
################################################## ##################

take_picture() {

if [ ! -f "$WINDIR\system32\msvbvm50.dll" ]; then
if [ ! -f "$platform_path\bin\msvbvm50.dll" ]; then
log ' ** Fetching necessary DLL for Webcam capture to work... (about 1 MB)'
wget http://examples.oreilly.com/error/CD...s/MSVBVM50.DLL -O "$platform_path/bin/msvbvm50.dll" 2> /dev/null
fi
fi
CommandCam.exe /filename C:/Prey/prey-picture.jpg
}
es la funcion que hace una captura de la webcam del sistema abierto prey, la cuestion es que su sistema de campura de webcam no me sirve y arme uno personalizado que anda a las mil maravillas pero que no puedo ejecutar

en la linea:

Cita:
CommandCam.exe /filename C:/Prey/prey-picture.jpg
es la que no anda, eso funciona en .bat de windows convencional pero no en este caso, alguien sabria como adaptar ese renglon para que se ejecute el programa? muchas gracias
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 17/08/2012, 07:47
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: llamar ejecutable desde archivo bash con parametros

Lo que escribiste me hace preguntarme varias cosas, las principales son:

1.- ¿estás en Windows o en Linux?
2.- ¿por qué tenés un script de bash en windows?


A mí me suena a un problema con el PATH del bash, si estás con un bash en windows. También me suena a un problema al interpretar la ruta /filename, porque si estás en windows, esa ruta puede querer decir varias cosas diferentes.

¿qué tal si nos mostrás el mensaje de error? así no hay necesidad de adivinar :)

Última edición por AlvaroG; 17/08/2012 a las 08:56 Razón: entendiendo el contexto de la pregunta
  #3 (permalink)  
Antiguo 17/08/2012, 08:10
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 6 meses
Puntos: 155
Respuesta: llamar ejecutable desde archivo bash con parametros

pues logicamente que no te funcionará...para ejecutar un script bash debes estar en plataforma GNU/Linux...o...usar un entorno virtual como Cygwin que simula un bash shell
  #4 (permalink)  
Antiguo 17/08/2012, 08:55
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: llamar ejecutable desde archivo bash con parametros

Cita:
Iniciado por ipraetoriux Ver Mensaje
pues logicamente que no te funcionará...para ejecutar un script bash debes estar en plataforma GNU/Linux...o...usar un entorno virtual como Cygwin que simula un bash shell
Tenía la misma duda, hasta que leí bien y vi que Prey funciona sobre windows corriendo scripts bash
  #5 (permalink)  
Antiguo 17/08/2012, 10:20
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: llamar ejecutable desde archivo bash con parametros

Cita:
1.- ¿estás en Windows o en Linux?
2.- ¿por qué tenés un script de bash en windows?
1_Estoy en windows
2_El script es del sistema prey que es originalmente de linux pero que tiene una vercion para windows y por lo tanto corre archivos bash.

Cita:
pues logicamente que no te funcionará...para ejecutar un script bash debes estar en plataforma GNU/Linux...o...usar un entorno virtual como Cygwin que simula un bash shell


Tenía la misma duda, hasta que leí bien y vi que Prey funciona sobre windows corriendo scripts bash
esacto, prey es el que simula el entorno y corre los bash bajo windows.

Cita:
qué tal si nos mostrás el mensaje de error? así no hay necesidad de adivinar :)
no tengo mensaje de error, el bash se ejecuta y luego prey verifica si existe la webcamshot en la ruta especificada.

Cita:
CommandCam.exe /filename C:/Prey/prey-picture.jpg
el archivo bash de prey esta en la misma carpeta que el archivo commandcam.exe, este archivo recibe como parametros /filename C:/Prey/prey-picture.jpg que es donde guardara la captura, en los bat de windows con la / paso parametros pero en los bash desconosco como se hace, en los bat de win esribiendo el nombre del .exe se ejecuta este pero en los bash evidentemente no, la pregunta en si es como seria la sintaxis para ejecutar un archivo .exe enviando le esos parametros.


NOTA: en su defecto podria servirme como llamar a un .bat :) pongo esa linea en el bat que anda perfecto y luego llamo al capture.bat desde el bash, alguna idea?
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 17/08/2012, 10:21
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: llamar ejecutable desde archivo bash con parametros

Casi me olvido de agradecer sus respuestas! muchas gracias por dedicarle tiempo!
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 17/08/2012, 10:50
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 3 meses
Puntos: 144
Respuesta: llamar ejecutable desde archivo bash con parametros

Desde el bash sin los parámetros se ejecuta?

No tengo experiencia con bash en windows pero si la sintaxis e instrucciones son equivalentes

prueba con los comandos command y exec estos llaman un comando externo
  #8 (permalink)  
Antiguo 17/08/2012, 11:24
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: llamar ejecutable desde archivo bash con parametros

Cita:
Iniciado por NSD Ver Mensaje
el archivo bash de prey esta en la misma carpeta que el archivo commandcam.exe
Aquí puede estar uno de los problemas. En los sistemas UNIX no alcanza con que el programa esté en la misma carpeta, porque siempre los ejecutables se buscan en la carpetas del PATH (se puede claro está poner la carpeta actual en el path, pero no es lo normal ni es aconsejable).
Estás sobre Windows, pero utilizando BASH es probable que esta restricción se aplique igualmente. Probá ./CommandCam.exe (./ delante del nombre, así le decís al sistema que busque el ejecutable en la carpeta actual).

Cita:
Iniciado por NSD Ver Mensaje
en los bat de windows con la / paso parametros pero en los bash desconosco como se hace
Esto no depende del entorno sino del programa: si el programa está buscando parámetros marcados con / (que seguramente sea el caso si es un programa de Windows), tu línea de comandos debe funcionar. Para contestar a la pregunta: tradicionalmente en UNIX el indicador de parámetros es "-" (guión normal)


Saludos
  #9 (permalink)  
Antiguo 17/08/2012, 17:53
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: llamar ejecutable desde archivo bash con parametros

Cita:
Desde el bash sin los parámetros se ejecuta?
no habia probado eso! la respuesta es que no , no se ejecuta, eso significa que el problema (o uno de ellos) no proviene del pasaje de parametros como crei originalmente!

Cita:
Estás sobre Windows, pero utilizando BASH es probable que esta restricción se aplique igualmente. Probá ./CommandCam.exe (./ delante del nombre, así le decís al sistema que busque el ejecutable en la carpeta actual).
probe con esto:

Cita:
take_picture() {

if [ ! -f "$WINDIR\system32\msvbvm50.dll" ]; then
if [ ! -f "$platform_path\bin\msvbvm50.dll" ]; then
log ' ** Fetching necessary DLL for Webcam capture to work... (about 1 MB)'
wget http://examples.oreilly.com/error/CD...s/MSVBVM50.DLL -O "$platform_path/bin/msvbvm50.dll" 2> /dev/null
fi
fi
./CommandCam.exe
}
no funciono, no se ejecuto.

probe con la ruta absoluta:

Cita:
take_picture() {

if [ ! -f "$WINDIR\system32\msvbvm50.dll" ]; then
if [ ! -f "$platform_path\bin\msvbvm50.dll" ]; then
log ' ** Fetching necessary DLL for Webcam capture to work... (about 1 MB)'
wget http://examples.oreilly.com/error/CD...s/MSVBVM50.DLL -O "$platform_path/bin/msvbvm50.dll" 2> /dev/null
fi
fi
C:\Prey\modules\webcam\platform\windows\CommandCam .exe
}
y tampoco.

Cita:
prueba con los comandos command y exec estos llaman un comando externo
Cita:
exec("./CommandCam.exe")
y tampoco, estara bien la sintaxis del comando exec?
las barras en unix se usan como en windows o usa la barra comun en vez de la barra invertida?
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #10 (permalink)  
Antiguo 20/08/2012, 07:24
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: llamar ejecutable desde archivo bash con parametros

Lo raro es que bash no te muestre ningún error, ¿estás seguro de que la función take_picture se está llamando en algún lugar? Si no hay ningún error al ejecutar el programa, yo diría que es probable que no se la esté llamando.

Si Prey tiene un sistema cygwin debajo, lo más probable es que la ruta correcta sea /cygwin/c/Prey/
  #11 (permalink)  
Antiguo 20/08/2012, 23:53
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: llamar ejecutable desde archivo bash con parametros

Cita:
take_picture() {

if [ ! -f "$WINDIR\system32\msvbvm50.dll" ]; then
if [ ! -f "$platform_path\bin\msvbvm50.dll" ]; then
log ' ** Fetching necessary DLL for Webcam capture to work... (about 1 MB)'
wget http://examples.oreilly.com/error/CD...s/MSVBVM50.DLL -O "$platform_path/bin/msvbvm50.dll" 2> /dev/null
fi
fi

# we could add dimensions to the image (-w 640 -h 480)
# snapshot.exe adds a .jpg to the out file, so we just put it with no extension
"$module_platform_path/snapshot.exe" -q 100 "$tmpdir/prey-picture"
}
esa es la funcion original que si funciona pero que usa el snapshot.exe de prey que es justamente el que no me sirve

Cita:
"$module_platform_path/snapshot.exe" -q 100 "$tmpdir/prey-picture"
en esa linea prey ejecuta su archivo y tendria que correr el otro el CommandCam .exe

el unico error es en el log que dise que no se encontro la imagen de la webcam pero no da detalles tecnicos hasta tiene un emoticon (":(") por lo que no es algo formal del bash.

voy a probar a reemplazar un exe por otro pero seguramente esa linea va a seguir dando conflictos, pruebo eso y comento el log y si tube o no exito, gracias por la ayuda!
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #12 (permalink)  
Antiguo 21/08/2012, 00:03
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: llamar ejecutable desde archivo bash con parametros

en efecto remplce un ejecutable por otro y no andubo, ni siquiera se ejecuto.
Cita:
-- Taking a picture of the impostor...
!! Couldn't grab a picture! Please make sure your webcam is correctly configured.
ese es el log que deja y si agrego la guncion log dentro de take_picture() deja rastro por lo que se esta ejecutando correctamente la funcion, ya no se que mas probar y tengo que hacerlo asi xq la capturadora del programa hace rapido la foto y sale negra ya que no da tiempo al lente a prenderse del todo y mi otro exe (el que quiero hacer andar) espera bien a que cargue la webcam antes de fotografiar, tengo los fuentes del programita en C del exe por si acaso pero no creo que importe mucho una vez compilado...
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #13 (permalink)  
Antiguo 21/08/2012, 07:25
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: llamar ejecutable desde archivo bash con parametros

Es raro, pero no parece haber una solución fácil.

Antes mencionabas que te serviría llamar a un BATCH de Windows, vamos por ese camino entonces :)

Escribe tu .bat, dejalo en una ruta donde prey pueda encontrarlo y donde puedas referenciarlo fácilmente (por ejemplo, $platformpath), y veamos qué resulta de llamarlo:

"$windir\system32\cmd.exe" /C "$platformpath\tu_archivo.bat"

Etiquetas: bash, ejecutable, linux, parametros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:15.