🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
7 messages
7 total messages Started by the.dodger Thu, 23 Jun 2005 00:46
script (sh) - directorio de ejecución desde X
#1940
Author: the.dodger
Date: Thu, 23 Jun 2005 00:46
21 lines
1573 bytes
Hola a todos.

A ver si alguien puede echarme una mano, que no encuentro información
al respecto...

Imaginemos el siguiente script:

#! /bin/sh
cwd > /home/dodger/cwd.txt


Al ejecutarlo desde consola, guarda en el fichero  /home/dodger/cwd.txt
la ruta del directorio desde donde se ejecuta.
Sin embargo, al ejecutarlo desde las X, siempre guarda el directorio
HOME, /dodger/home.

¿Como puedo guardar desde el .sh, lanzado desde las X, el directorio
donde está realmente el fichero?

Muchas gracias por adelantado:
-dodger-
Re: script (sh) - directorio de ejecución desde X
#1942
Author: J.A. Gutierrez
Date: Thu, 23 Jun 2005 07:30
43 lines
2636 bytes
the.dodger@gmail.com wrote:

: #! /bin/sh
: cwd > /home/dodger/cwd.txt

	cwd no es un ejecutable estandar de Unix/Linux, que yo sepa.

: Al ejecutarlo desde consola, guarda en el fichero  /home/dodger/cwd.txt
: la ruta del directorio desde donde se ejecuta.

	si te refieres a "pwd", si te da el directorio actual de
	trabajo del shell desde el que se le invoca.
	
: Sin embargo, al ejecutarlo desde las X, siempre guarda el directorio
: HOME, /dodger/home.

: �Como puedo guardar desde el .sh, lanzado desde las X, el directorio
: donde est� realmente el fichero?

	Si te entiendo bien, lo que quieres decir es que si el script
	lo tienes en /foo/bar/foo.sh, lo que quieres es que te deje
	como salida "/foo/bar" cuando se ejecuta "desde las X".

	Primero: lo de "desde las X" no tiene sentido tal cual. En
	un entorno X11 existen infinidad de metodos para ejcutar
	comandos; asi que depende del metodo los resultados pueden
	ser unos u otros.

	Segundo: por lo general, el directorio donde esta instalado
	un script viene dado por `dirname $0`

	Tercero: de todas formas no veo la relacion entre el directorio
	en el que esta instalado un script y el directorio actual de
	trabajo en shell; asi que probablemente no he entendido bien
	lo que quieres...



-- 
PGP and other useless info at      \
http://webdiis.unizar.es/~spd/      \
finger://daphne.cps.unizar.es/spd    \       Timeo Danaos et dona ferentes
ftp://ivo.cps.unizar.es/pub/          \                         (Virgilio)   
Re: script (sh) - directorio de ejecución desde X
#1944
Author: dodger
Date: Thu, 23 Jun 2005 08:20
63 lines
3290 bytes
Hola, y gracias por tu respuesta

J.A. Gutierrez ha escrito:
> : #! /bin/sh
> : cwd > /home/dodger/cwd.txt
>
> 	cwd no es un ejecutable estandar de Unix/Linux, que yo sepa.
>
> : Al ejecutarlo desde consola, guarda en el fichero  /home/dodger/cwd.txt
> : la ruta del directorio desde donde se ejecuta.
>
> 	si te refieres a "pwd", si te da el directorio actual de
> 	trabajo del shell desde el que se le invoca.


Efectivamente, me refería a pwd. Esto de postear a las 3 de la mañana
no es sano :)



>
> : Sin embargo, al ejecutarlo desde las X, siempre guarda el directorio
> : HOME, /dodger/home.
>
> : ¿Como puedo guardar desde el .sh, lanzado desde las X, el directorio
> : donde está realmente el fichero?
>
> 	Si te entiendo bien, lo que quieres decir es que si el script
> 	lo tienes en /foo/bar/foo.sh, lo que quieres es que te deje
> 	como salida "/foo/bar" cuando se ejecuta "desde las X".
>
> 	Primero: lo de "desde las X" no tiene sentido tal cual. En
> 	un entorno X11 existen infinidad de metodos para ejcutar
> 	comandos; asi que depende del metodo los resultados pueden
> 	ser unos u otros.


Tienes razón. Me refería a un clásico "doble click" desde una
ventana de kde...


>
> 	Segundo: por lo general, el directorio donde esta instalado
> 	un script viene dado por `dirname $0`

Estupendo, gracias, probaré con ello.


> 	Tercero: de todas formas no veo la relacion entre el directorio
> 	en el que esta instalado un script y el directorio actual de
> 	trabajo en shell; asi que probablemente no he entendido bien
> 	lo que quieres...

El tema es que el script debe acceder a otros ficheros que le
acompañan, y están en el mismo directorio (no va a estar en ningún
lugar del PATH, por lo que el directorio de ejecución debería ser el
directorio en que esté instalado). Al ejecutarlo desde consola, todo
estupendo, pero al tratar de lanzarlo con "doble click", fallaba. El
ejemplo del "pwd" era sólo ilustrativo :)

Muchas gracias, y probaré lo del `dirname $0`

-dodger-
Re: script (sh) - directorio de ejecución desde X
#1945
Author: Jos� Luis P�rez Diez
Date: Thu, 23 Jun 2005 08:26
46 lines
2447 bytes
In article <1119487606.049794.80650@g14g2000cwa.googlegroups.com>,  
wrote:
> #! /bin/sh
> cwd > /home/dodger/cwd.txt
> 
> Al ejecutarlo desde consola, guarda en el fichero  /home/dodger/cwd.txt
> la ruta del directorio desde donde se ejecuta.
> Sin embargo, al ejecutarlo desde las X, siempre guarda el directorio
> HOME, /dodger/home.
> 
> �Como puedo guardar desde el .sh, lanzado desde las X, el directorio
> donde est� realmente el fichero?
>
Mira la pagina de manual de sh 
$0 guarda la llamada
si el script no esta en el path $0 coniene la ruta al comando
si no usa which 
$PWD contiene el directorio activo

Segun que uses para lanzar el comado desde las X te mantendra siempre le 
mismo directorio de incio ( si abres un xterm veras como siempre te 
guarda el directorio en que estas):
jpddb@debian:/$ cat ~/test.sh
#!/bin/bash
echo $PWD
echo $SHELL
echo $0
which $0
jpddb@debian:/$ ~/test.sh
/
/bin/bash
/home/jpddb/test.sh
/home/jpddb/test.sh
jpddb@debian:/$ cd
jpddb@debian:~$ ./test.sh
/home/jpddb
/bin/bash
/test.sh
/test.sh
jpddb@debian:~$     


--
Los programadores esta ocupados intendtado mejorar los programas a prueba 
de idiotas. Mientras tanto el universo  intenta mejorar los idiotas. El 
universo va ganando
Re: script (sh) - directorio de ejecución desde X
#1947
Author: Claudio
Date: Thu, 23 Jun 2005 11:24
11 lines
1493 bytes
On 2005-06-23, dodger <the.dodger@gmail.com> wrote:
>
> El tema es que el script debe acceder a otros ficheros que le
> acompa�an,

Esto es una mala t�cnica. En unix se suelen separar los elementos de
programas por su l�gica: configuraci�n en /etc , ejecutables en
/usr/bin/ datos en /var , etc.

Un saludo.
--claudio--
Re: script (sh) - directorio de ejecución desde X
#1949
Author: dodger
Date: Thu, 23 Jun 2005 19:40
28 lines
2190 bytes

Claudio wrote:
> On 2005-06-23, dodger <the.dodger@gmail.com> wrote:
> >
> > El tema es que el script debe acceder a otros ficheros que le
> > acompañan,
>
> Esto es una mala técnica. En unix se suelen separar los elementos de
> programas por su lógica: configuración en /etc , ejecutables en
> /usr/bin/ datos en /var , etc.

Si, lo sé. Quería ahorrar los detalles del caso en particular, pero
hubiese sido mejor contarlo desde el principio.

Todo esto viene para arrancar un programa Java, que se encuentra en un
par de ficheros .jar. Quiero poder lanzarlo con "doble click", pero
necesito especificar esos jar en el classpath, en plan:

#! /bin/sh
java -cp jar1.jar:jar2.jar Programa

Esto en consola va guay, pero desde las X, con doble click, no
encuentra los jar... y de ahí todo el follón :)

Gracias a todos por las respuestas :)

-dodger-
Re: script (sh) - directorio de ejecución desde X
#1952
Author: Jellby
Date: Fri, 24 Jun 2005 11:26
22 lines
2018 bytes
Entre otras cosas, dodger tuvo a bien escribir:

> #! /bin/sh
> java -cp jar1.jar:jar2.jar Programa
> 
> Esto en consola va guay, pero desde las X, con doble click, no
> encuentra los jar... y de ah� todo el foll�n :)

En KDE, cuando creas los "enlaces a aplicaci�n", tienes un campo que se
llama "ruta de trabajo", supongo que servir� para eso. En otros escritorios
o en X a secas, pues no s�, pero supongo que siempre podr�s poner algo as�
como "cd /home/pepito/aquimismo" al principio del script.

-- 
     Ignacio __ Fern�ndez Galv�n
            / /\
Linux user / /  \  PGP Pub Key
#289967   / / /\ \  0x01A95F99
         / / /\ \ \
   http://djelibeibi.unex.es
       /________\ \ \
jellby \___________\/ yahoo.com
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads