[RISOLTO] Problema script con 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
Avatar utente
Larry
Linux 0.x
Linux 0.x
Messaggi: 50
Iscritto il: gio 18 ott 2007, 20:24
Slackware: 14.0
Località: Fano (PU)

[RISOLTO] Problema script con Bash

Messaggio da Larry »

Gente
da poco ho iniziato diletto a fare qualche "scriptino" con Bash... uno degli esempi sulla guida che sto seguendo è il seguente script:

#!/bin/sh
a=1
stampa () {
b=2
echo il valore di b nel blocco è $b
}
c=3
echo il valore di a fuori dal blocco è $a
echo il valore di b fuori dal blocco è $b
echo il valore di c fuori dal blocco è $c


che secondo la guida dovrebbe dare come risultato:

il valore di a fuori dal blocco è 1
il valore di b fuori dal blocco è
il valore di c fuori dal blocco è 3
il valore di b nel blocco è 2


rendo eseguibile lo script con chmod u+x nome_script e quindi do il comando ./nome_script e come risultato ottengo

il valore di a fuori dal blocco è 1
il valore di b fuori dal blocco è
il valore di c fuori dal blocco è 3


ovvero no mi visualizza l'ultima riga, come se ignorasse la funzione stampa ().
Sapete dirmi cosa c'è che non va?? :cry:

La mia distro è Slackware 12.0.
Ciao
Ultima modifica di Larry il mer 14 gen 2009, 12:44, modificato 1 volta in totale.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Problema script con Bash

Messaggio da targzeta »

Larry ha scritto:...
Sapete dirmi cosa c'è che non va?? :cry:
...
Ad occhio e croce manca l'invocazione della funzione stampa.

Spina

Offtopic: P.S. quando posti codice, usa il tag

Codice: Seleziona tutto

 è fatto apposta :)[/offtopic]
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Larry
Linux 0.x
Linux 0.x
Messaggi: 50
Iscritto il: gio 18 ott 2007, 20:24
Slackware: 14.0
Località: Fano (PU)

Re: Problema script con Bash

Messaggio da Larry »

Ad occhio e croce manca l'invocazione della funzione stampa.

Spina
Spina scusa, quindi come lo modificheresti?

Larry

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Problema script con Bash

Messaggio da 414N »

Codice: Seleziona tutto

#!/bin/sh
a=1
stampa () {
b=2
echo il valore di b nel blocco è $b
}
c=3
echo il valore di a fuori dal blocco è $a
echo il valore di b fuori dal blocco è $b
echo il valore di c fuori dal blocco è $c

stampa
Devi invocare la funzione stampa, altrimenti non si eseguirà mai da sola...

Avatar utente
Larry
Linux 0.x
Linux 0.x
Messaggi: 50
Iscritto il: gio 18 ott 2007, 20:24
Slackware: 14.0
Località: Fano (PU)

Re:Problema script con Bash

Messaggio da Larry »

Devi invocare la funzione stampa, altrimenti non si eseguirà mai da sola...
414N cosi funziona! :hello1:

Visto che siamo in argomento, sapete dirmi se esiste un comando per visualizzare le funzioni che posso utilizzare con la Bash? :-k

Larry

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: [RISOLTO] Problema script con Bash

Messaggio da Ansa89 »

Cosa intendi con "funzioni"?

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: [RISOLTO] Problema script con Bash

Messaggio da 414N »

Larry ha scritto: Visto che siamo in argomento, sapete dirmi se esiste un comando per visualizzare le funzioni che posso utilizzare con la Bash? :-k
Larry
Se per funzioni intendi le built-in (ovvero funzioni interpretate direttamente da bash), nella pagina man ne trovi un elenco (nella sezione BUILT-INS).
Io ti consiglierei di dare una bella letta alla man page di bash e poi alle centinaia di migliaia di tutorial sparsi per la rete.
Per avere la man page in un comodo pdf:

Codice: Seleziona tutto

man -t bash | ps2pdf - bash.pdf

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: [RISOLTO] Problema script con Bash

Messaggio da Mario Vanoni »

414N ha scritto: Per avere la man page in un comodo pdf:

Codice: Seleziona tutto

man -t bash | ps2pdf - bash.pdf
Domanda di un vecchio ignorante:

cosa si guadagna al posto di

man bash | less

con less ricerche con /xyz o ?xyz, senza cliccare.

E` piu` veloce leggere e/o cercare in un *.pdf?

Comodita` == aspettare e cliccare alla M$?

vedi
http://blog.linuxtoday.com/blog/2009/01 ... cumbs.html

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: [RISOLTO] Problema script con Bash

Messaggio da 414N »

Mario Vanoni ha scritto: Domanda di un vecchio ignorante:

cosa si guadagna al posto di

man bash | less

con less ricerche con /xyz o ?xyz, senza cliccare.

E` piu` veloce leggere e/o cercare in un *.pdf?

Comodita` == aspettare e cliccare alla M$?

vedi
http://blog.linuxtoday.com/blog/2009/01 ... cumbs.html
La pipe con less è abbastanza inutile, dato che less è (di solito) il visualizzatore predefinito delle pagine man.
Io alcune man pages preferisco consultarle in PDF, soprattutto quando queste sono lunghine (come la man page di bash o di mplayer).
Mi trovo meglio a consultare pagine A4 piuttosto di videate 80x25 (se non ricordo male la dimensione della schermata dei terminali).
Tra l'altro, anche con kpdf si può cercare senza cliccare da nessuna parte: CTRL+F->parola da cercare->F3 per scorrere le parole trovate.
Si tratta comunque di preferenze personali, cioè di una comodità soggettiva.

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: [RISOLTO] Problema script con Bash

Messaggio da Mario Vanoni »

414N ha scritto:
Mario Vanoni ha scritto: Domanda di un vecchio ignorante:

cosa si guadagna al posto di

man bash | less

con less ricerche con /xyz o ?xyz, senza cliccare.

E` piu` veloce leggere e/o cercare in un *.pdf?

Comodita` == aspettare e cliccare alla M$?

vedi
http://blog.linuxtoday.com/blog/2009/01 ... cumbs.html
La pipe con less è abbastanza inutile, dato che less è (di solito) il visualizzatore predefinito delle pagine man.
Io alcune man pages preferisco consultarle in PDF, soprattutto quando queste sono lunghine (come la man page di bash o di mplayer).
Mi trovo meglio a consultare pagine A4 piuttosto di videate 80x25 (se non ricordo male la dimensione della schermata dei terminali).
Tra l'altro, anche con kpdf si può cercare senza cliccare da nessuna parte: CTRL+F->parola da cercare->F3 per scorrere le parole trovate.
Si tratta comunque di preferenze personali, cioè di una comodità soggettiva.
Hai ragione, se memorizzi i diversi short-cut dei differenti GUI.

In ambiente UNIX /parola da cercare, n per scorrere le parole trovate,
e` piu` uniforme/veloce, dimentcando il refresh che un pdf impiega.

Avatar utente
Larry
Linux 0.x
Linux 0.x
Messaggi: 50
Iscritto il: gio 18 ott 2007, 20:24
Slackware: 14.0
Località: Fano (PU)

Re: [RISOLTO] Problema script con Bash

Messaggio da Larry »

Che dire, siete stati molto completi nelle vostre risposte, grazie!

Offtopic: Il sapere va divulgato.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: [RISOLTO] Problema script con Bash

Messaggio da targzeta »

Offtopic:
Larry ha scritto:Offtopic: ...Il sapere va divulgato.
Offtopic:
Questo che hai scritto è molto importante. Spero tu ne sia convinto a tal punto che, quando avrai i tuoi impegni, non smetterai comunque di aiutare gli altri :)

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

sixjan
Linux 2.x
Linux 2.x
Messaggi: 413
Iscritto il: dom 6 gen 2008, 11:46
Slackware: 14.1
Kernel: 3.10.17-smp
Desktop: Xfce 4.10

Re: [RISOLTO] Problema script con Bash

Messaggio da sixjan »

Oltre a less e pdf, (visto che divulghiamo :-) ), ricordiamo anche
la possibilità di visualizzare le pagine man con konqueror
inserendo nella sua barra degli indirizzi:

#bash

se ci interessa il man di bash. Ciao.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: [RISOLTO] Problema script con Bash

Messaggio da 414N »

sixjan ha scritto:Oltre a less e pdf, (visto che divulghiamo :-) ), ricordiamo anche
la possibilità di visualizzare le pagine man con konqueror
inserendo nella sua barra degli indirizzi:

#bash

se ci interessa il man di bash. Ciao.
Questa non la sapevo! Buono a sapersi :thumbright:

Rispondi