Jump to content
  • 0

Comando curl funcionando via terminal pero no via script.


portaro
 Share
Followers 0

Question

Hace tiempo creo que supe como hacer esto pero ahora mismo no me acuerdo o estoy confuso.

Os cuento el tipico script para ver el tiempo desde wttr.in con comando curl

$ curl wttr.in/local

y entonces intento mediante lxmenu hacer un lanzador para que me ejecute eso con un click y me lo muestre en terminal y resulta que por vueltas que le doy no me lo hace ejemplo 

$ bash /home/joao/.config/tempo.sh

$ bash -x /home/joao/.config/tempo.sh

$ bash -c  /home/joao/.config/tempo.sh

$ lxterminal -e "bash -c '/home/joao/.config/tempo.sh;$bash' "

...

 

Y nada solo me abre el lxterminal nada más.

El script esta tal que asi →

 

#!/bin/bash
curl https://wttr.in/chaves

 

En lxmenu tengo el desktop launcher asi →

 

[Desktop Entry]
Name=Tempo-Chaves
Exec=bash /home/joao/.config/tempo.sh
Comment=
Icon=
NoDisplay=false
Type=Application
Terminal=true
Categories=Utility;

 

 

A ver si alguien me hecha una luz.

 

 

Link to post
Share on other sites

16 answers to this question

Recommended Posts

  • 0
On 3/1/2020 at 18:04, portaro dijo:

Hace tiempo creo que supe como hacer esto pero ahora mismo no me acuerdo o estoy confuso.

Os cuento el tipico script para ver el tiempo desde wttr.in con comando curl

$ curl wttr.in/local

y entonces intento mediante lxmenu hacer un lanzador para que me ejecute eso con un click y me lo muestre en terminal y resulta que por vueltas que le doy no me lo hace ejemplo 

$ bash /home/joao/.config/tempo.sh

$ bash -x /home/joao/.config/tempo.sh

$ bash -c  /home/joao/.config/tempo.sh

$ lxterminal -e "bash -c '/home/joao/.config/tempo.sh;$bash' "

...

 

Y nada solo me abre el lxterminal nada más.

El script esta tal que asi →

 

#!/bin/bash
curl https://wttr.in/chaves

 

En lxmenu tengo el desktop launcher asi →

 

[Desktop Entry]
Name=Tempo-Chaves
Exec=bash /home/joao/.config/tempo.sh
Comment=
Icon=
NoDisplay=false
Type=Application
Terminal=true
Categories=Utility;

 

 

A ver si alguien me hecha una luz.

 

 

No lo puedo investigar ahora pero ¿Lo has hecho ejecutable? chmod +x script.sh

Edited by uzanto
Link to post
Share on other sites
  • 0
hace 9 horas, uzanto dijo:

No lo puedo investigar ahora pero ¿Lo has hecho ejecutable? chmod -x script.sh

 

Si, ya intente un monton de cosas y lo cierto es que no hay manera, en el foro de Gambas me intentaron hechar una mano pero no logramos nada te dejo el link por si puedes quedarte con una idea de lo que ya hicimos →

https://www.gambas-es.org/viewtopic.php?f=6&t=7858

Link to post
Share on other sites
  • 0
Posted (edited)

Buscando ayuda también en Linux Questions a ver que intentamos hacer dejo el link por si interesa a alguien →

https://www.linuxquestions.org/questions/showthread.php?p=6074920#post6074920

Edited by portaro
Link to post
Share on other sites
  • 0
hace 3 horas, portaro dijo:

Buscando ayuda también en Linux Questions a ver que intentamos hacer dejo el link por si interesa a alguien →

https://www.linuxquestions.org/questions/showthread.php?p=6074920#post6074920

En el archivo .desktop deberías usar:

 

Exec=lxterminal -e sh -c "/home/joao/.config/tempo.sh; read foo"

 

El emulador de terminal esperara a que pulses intro para salir.

Link to post
Share on other sites
  • 0
hace 5 minutos, uzanto dijo:

En el archivo .desktop deberías usar:

 

Exec=lxterminal -e sh -c "/home/joao/.config/tempo.sh; read foo"

 

El emulador de terminal esperara a que pulses intro para salir.

 

Probado y nada no funciona si lo pongo directo en terminal va bien → lxterminal -e sh -c "/home/joao/.config/tempo.sh; read foo"

Pero en el launcher abre terminal y se queda sin hacer nada, es como i le diera solo a abrir terminal.

 

Gracias por el dato.

Link to post
Share on other sites
  • 0
hace 2 minutos, portaro dijo:

 

Probado y nada no funciona si lo pongo directo en terminal va bien → lxterminal -e sh -c "/home/joao/.config/tempo.sh; read foo"

Pero en el launcher abre terminal y se queda sin hacer nada, es como i le diera solo a abrir terminal.

 

Gracias por el dato.

cambia

Exec=lxterminal -e sh -c "/home/joao/.config/tempo.sh; read foo"

por

Exec=lxterminal -x sh -c "/home/joao/.config/tempo.sh; read foo"

básicamente cambiar la -e por -x

 

asegurate de que el archivo tempo.sh tiene permisos de ejecutar por si acaso lo hayas tocado con tanta cosa

chmod +x /home/joao/.config/tempo.sh

Link to post
Share on other sites
  • 0

Lo probe y en el lanzador hace lo mismo abre terminal y no hace nada.

 

Si pongo la orden en terminal con la -x me da esto →


 

$ lxterminal -x sh -c "/home/joao/.config/tempo.sh; read foo"
Usage:
  lxterminal [Options...] - LXTerminal is a terminal emulator

Options:
  -e, --command=STRING             Execute the argument to this option inside the terminal
  --geometry=COLUMNSxROWS          Set the terminal's size
  -l, --loginshell                 Execute login shell
  -t, -T, --title=STRING           Set the terminal's title
  --working-directory=DIRECTORY    Set the terminal's working directory

 

Link to post
Share on other sites
  • 0

Creo que el problema esta en los parametros que esta recibiendo la orden lxterminal o el terminal porque si pongo esto en el terminal el programa funciona abriendo otra terminal y ejecutando el script bien.

 

lxterminal  -e bash -c "/home/joao/.config/tempo.sh; read foo"
/run/user/1000/.lxterminal-socket-:0

Lo que no pasa al ejecutar con click el Launcher lanzador que solo abre la terminal y no hace (ejecuta) nada.

Asi lo que podria estar mal en el lanzador sera el modo de entrada del script 

 

bash -c "/home/joao/.config/tempo.sh; read foo"

A ver si algun dia damos con la solucion.

Link to post
Share on other sites
  • 0
hace 8 horas, portaro dijo:

Creo que el problema esta en los parametros que esta recibiendo la orden lxterminal o el terminal porque si pongo esto en el terminal el programa funciona abriendo otra terminal y ejecutando el script bien.

 


lxterminal  -e bash -c "/home/joao/.config/tempo.sh; read foo"
/run/user/1000/.lxterminal-socket-:0

Lo que no pasa al ejecutar con click el Launcher lanzador que solo abre la terminal y no hace (ejecuta) nada.

Asi lo que podria estar mal en el lanzador sera el modo de entrada del script 

 


bash -c "/home/joao/.config/tempo.sh; read foo"

A ver si algun dia damos con la solucion.

El problema es lxterminal, porque en Tilix y Gnome terminal funciona, habría que ver cual es la forma de hacerlo ahí, aunque yo no uso lxde, aquí dan unas cuantas soluciones más, echale un ojo https://superuser.com/questions/1281509/how-can-i-open-a-lxterminal-with-a-script-running-in-it

 

Cita

Whay have no one addressed the fact that lxterminal does not launch when command has spaces inside the quotes? For me, the only way to make this happen is to escape spaces with forward slash. Like so: lxterminal --command="/bin/bash\ -c\ '/home/pi/files.sh;\ /bin/bash'"

 

Justo acabo de leer mejor en ese tema y al parecer si hay espacios entre las comillas " " del comando a lanzar lxterminal no lo puede lanzar, hay que "escapar" los espacios con \ como indica ahí, prueba así.

Edited by uzanto
Link to post
Share on other sites
  • 0

Acabo de intentar pero sigo sin tener salida de comando ninguna.

 

lxterminal -e bash -c "/home/joao/.config/tempo.sh;\read\foo"

 

No funciona, si lo hace directo en terminal pero no en launcher.
 

Tengo Uxterm y tilda pero resulta que al editar el launcher en lxmenu http://lxmed.sourceforge.net/ siempre me lanza el lxterminal y no otro por ejemplo si cambio el terminal al inicio de comando por uxterm me lanza lxterminal.

 

Seguire investigando mañana y si hay algo mal en el comando que dejo de ejemplo de los que intente adicionar al lanzador se agradece ayuda.

 

Gracias.

 

Link to post
Share on other sites
  • 0
On 13/1/2020 at 0:39, portaro dijo:

Acabo de intentar pero sigo sin tener salida de comando ninguna.

 

lxterminal -e bash -c "/home/joao/.config/tempo.sh;\read\foo"

 

No funciona, si lo hace directo en terminal pero no en launcher.
 

Tengo Uxterm y tilda pero resulta que al editar el launcher en lxmenu http://lxmed.sourceforge.net/ siempre me lanza el lxterminal y no otro por ejemplo si cambio el terminal al inicio de comando por uxterm me lanza lxterminal.

 

Seguire investigando mañana y si hay algo mal en el comando que dejo de ejemplo de los que intente adicionar al lanzador se agradece ayuda.

 

Gracias.

 

El espacio deberías dejarlo después de cada \, osea, que para cada espacio que pongas debes poner un \ antes.

lxterminal -e bash -c "/home/joao/.config/tempo.sh;\ read\ foo"

Prueba con esta otra forma a ver qué tal.

lxterminal --command="/bin/bash\ -c\ '/home/joao/.config/tempo.sh;\ /bin/bash'"

 

Link to post
Share on other sites
  • 0

Lo acabo de probar y nada abre el terminal pero no ejecuta nunca el comando en si.

 

Menudo problema me topo es que en otros foros tampoco damos con solución.

 

Muchas gracias por tu inestimable colaboracion a ver si vemos una solucion más que nada ya es por curiosidad.

 

Edited by portaro
Link to post
Share on other sites
  • 0
On 15/1/2020 at 21:43, portaro dijo:

Lo acabo de probar y nada abre el terminal pero no ejecuta nunca el comando en si.

 

Menudo problema me topo es que en otros foros tampoco damos con solución.

 

Muchas gracias por tu inestimable colaboracion a ver si vemos una solucion más que nada ya es por curiosidad.

 

A mi desde Gnome me funciona así

Exec=lxterminal -e /bin/bash -c '/home/joao/.config/tempo.sh; /bin/bash'

Pero me abre una ventana de la terminal de Gnome antes, quizás sea por eso por lo que me funciona.

Prueba con esto también.

Exec=lxterminal -e '/home/joao/.config/tempo.sh && /bin/bash'

 

Edited by uzanto
Link to post
Share on other sites
  • 0

Gracias, revise tu aporte y no funciona.

 

Intentare hecharle un vistazo a documentacion de lxterminal seguramente es tema de su interpretador ya que el comando funciona en otros sistemas con otros terminales.

 

Seguimos indagando.

Link to post
Share on other sites
  • 0
hace 1 hora, portaro dijo:

Gracias, revise tu aporte y no funciona.

 

Intentare hecharle un vistazo a documentacion de lxterminal seguramente es tema de su interpretador ya que el comando funciona en otros sistemas con otros terminales.

 

Seguimos indagando.

Encontré esta otra posibilidad

Exec=lxterminal --working-directory=/home/joao/.config/ -e ./tempo.sh

Si no funciona, pregunta aquí.

https://forum.lxde.org/viewforum.php?f=26

 

¿Cuál es el entorno de escritorio por cierto? Quizás el problema este en este.

 

Link to post
Share on other sites
  • 0
On 17/1/2020 at 23:38, uzanto dijo:

Encontré esta otra posibilidad


Exec=lxterminal --working-directory=/home/joao/.config/ -e ./tempo.sh

Si no funciona, pregunta aquí.

https://forum.lxde.org/viewforum.php?f=26

 

¿Cuál es el entorno de escritorio por cierto? Quizás el problema este en este.

 

LXDE es mi entorno.

La cosa es sumamente interesante ya que tengo otros script que si funcionan por ejemplo el de activar compton o un mensaje que me sale en el desktop cada vez que inicio sesion.

 

Conozco ese foro creo que tengo cuenta alla voy.

Link del tema abierto

 

Gracias.

Edited by portaro
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share
×
×
  • Create New...