script bash

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Almucantarat
Linux 1.x
Linux 1.x
Messaggi: 132
Iscritto il: ven 15 apr 2005, 0:00

script bash

Messaggio 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

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio 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.

Almucantarat
Linux 1.x
Linux 1.x
Messaggi: 132
Iscritto il: ven 15 apr 2005, 0:00

Messaggio 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 :(

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio 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]

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio 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!

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

inoltre è inutile mettere:

Codice: Seleziona tutto

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

ciao!

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

Codice: Seleziona tutto

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

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio 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;

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio 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

Almucantarat
Linux 1.x
Linux 1.x
Messaggi: 132
Iscritto il: ven 15 apr 2005, 0:00

Messaggio 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!

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

be', io ho usato tmp e non /tmp xké ho una tmp nella mia home :).

Rispondi