Pagina 1 di 1

script bash

Inviato: sab 29 ott 2005, 19:00
da Almucantarat
Ciao
Sto cercando di impratichirmi con gli script bash.
Ma ho subito un problema:

Codice: Seleziona tutto

#!/bin/sh
#!/bin/bash


cd ./Latex
echo ciao

exit 0
quando lo eseguo con sh script viene visualizzato "ciao" ma la directory non cambia.

Dove sbaglio?
Devo dare un'estensione particolare hai file di script?
Grazie

Inviato: sab 29 ott 2005, 19:20
da useless
prima di tutto: ai, e non "hai".

la directory cambia, ma solo x quanto riguarda lo script. infatti lanciando uno script, questo viene eseguito in una nuova shell, e al termine dello script, la shell muore. se vuoi eseguire in quella corrente dei comandi contenuti in un file, puoi lanciarlo con "source" o ".":

Codice: Seleziona tutto

source script
. script
non serve nessuna estensione particolare.

Inviato: sab 29 ott 2005, 19:55
da Almucantarat
grazie!

ho provato a fare source script ma mi dà:
-sh: ELF: command not found

dopo aver reso eseguibile lo script, con ./script il risultato non cambia: vedo ciao ma la directory è la stessa :(

Inviato: sab 29 ott 2005, 19:56
da useless
non ho detto

Codice: Seleziona tutto

./script
bensì

Codice: Seleziona tutto

. script
quanto a ELF, stai sourcando un file binario e non uno script...[/code]

Inviato: sab 29 ott 2005, 20:00
da Paoletta
almucantarat, prova a fare

Codice: Seleziona tutto

 source ./script 
oppure

Codice: Seleziona tutto

 . ./script 
a me funziona solo se do il path completo...

ciao!

Inviato: sab 29 ott 2005, 20:01
da Paoletta
inoltre è inutile mettere:

Codice: Seleziona tutto

#!/bin/sh
#!/bin/bash 
tanto viene presa in considerazione solo la prima riga;

ciao!

Inviato: sab 29 ott 2005, 20:06
da useless

Codice: Seleziona tutto

sukko@unholycathedral ~ $ echo cd tmp > antani
sukko@unholycathedral ~ $ . antani
sukko@unholycathedral tmp $

Inviato: sab 29 ott 2005, 20:10
da Paoletta
come ha fatto useless ora funziona...anche se ci vuole un

Codice: Seleziona tutto

 cd /tmp 
e non

Codice: Seleziona tutto

 cd tmp 
ora ho realizzato perchè non funzionava prima...al posto di "antani" usavo "script" che è un comando;

Inviato: sab 29 ott 2005, 20:25
da Paoletta
come ha fatto useless ora funziona...anche se ci vuole un

Codice: Seleziona tutto

 cd /tmp 
e non

Codice: Seleziona tutto

 cd tmp 
ora ho realizzato perchè non funzionava prima...al posto di "antani" usavo "script" che è un comando...e quindi sourcavo un binario
chiaramente il problema si evita con

Codice: Seleziona tutto

. ./script

Inviato: sab 29 ott 2005, 21:26
da Almucantarat
ok grazie ora le cose si sono fatte un po' piu chiare:

lo script viene eseguito con source ./script
ma se gli cambio il nome (antani) funziona anche senza ./ (e anche con . antani)

il fatto di avere exit 0 alla fine mi chiude il terminale, cosa che ha senso...

grazie a tutti!

Inviato: dom 30 ott 2005, 14:49
da useless
be', io ho usato tmp e non /tmp xké ho una tmp nella mia home :).