Strano problema con script BASH

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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.
Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano problema con script BASH

Messaggio da anycolouryoulike »

Mario Vanoni ha scritto:- non capisco che significhi "incollare" (dove?)
Sarebbe fare copia e incolla del comando ottenuto tramite l'echo sul terminale.
Mario Vanoni ha scritto:- mi meraviglio che una sh da X/DE
> si comporti in modo diverso che da tty,
> errore intrinseco di X/DE?
No, non hai capito...
Il comando funziona scrivendolo sul terminale ma non funziona lanciandolo tramite lo script...

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano problema con script BASH

Messaggio da anycolouryoulike »

conraid ha scritto:Ma nello script che ti ho passato io cosa non funziona?
Funziona perfettamente.
Solamente mi sto dannando per capirne il perché...
A quanto pare il problema sono proprio quegli apici...
Almeno ho scoperto come mai veniva espanso l'asterisco:

Codice: Seleziona tutto

$ PROVA=*
$ echo "$PROVA"
*
L'espansione non avveniva al momento dell'assegnamento ma solo al momento dell'utilizzo.
Quindi praticamente echo $PROVA equivale a echo *.

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano problema con script BASH

Messaggio da anycolouryoulike »

Forse ho trovato: http://www.gnu.org/software/bash/manual ... te-Removal.
Forse incollando il comando sul terminale gli apici non vengono passati a rsync ma servono solamente per preservarne il contenuto, poi vengono rimossi.
E forse per qualche strano motivo questo nello script non succede e rsync prova ad escludere '*.tgz', e non *.tgz...

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Strano problema con script BASH

Messaggio da conraid »

anycolouryoulike ha scritto:Forse ho trovato: http://www.gnu.org/software/bash/manual ... te-Removal.
Forse incollando il comando sul terminale gli apici non vengono passati a rsync ma servono solamente per preservarne il contenuto, poi vengono rimossi.
E forse per qualche strano motivo questo nello script non succede e rsync prova ad escludere '*.tgz', e non *.tgz...
Da linea di comando ti funziona perché non ci sono apici all'interno di virgolette.
Se nello script metti
INCLUDE='--include=*.tgz'
EXCLUDE='--exclude=/kdei --exclude=*/*'

ti funziona lo stesso, l'importante è che non metti gli apici all'interno delle virgolette e viceversa.
La spiegazione teorica non lo so, ma funziona così

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano problema con script BASH

Messaggio da anycolouryoulike »

conraid ha scritto:
anycolouryoulike ha scritto:Forse ho trovato: http://www.gnu.org/software/bash/manual ... te-Removal.
Forse incollando il comando sul terminale gli apici non vengono passati a rsync ma servono solamente per preservarne il contenuto, poi vengono rimossi.
E forse per qualche strano motivo questo nello script non succede e rsync prova ad escludere '*.tgz', e non *.tgz...
Da linea di comando ti funziona perché non ci sono apici all'interno di virgolette.
Se nello script metti
INCLUDE='--include=*.tgz'
EXCLUDE='--exclude=/kdei --exclude=*/*'

ti funziona lo stesso, l'importante è che non metti gli apici all'interno delle virgolette e viceversa.
La spiegazione teorica non lo so, ma funziona così
Non mi convince...
Se non sbaglio sia gli apici dentro i doppi apici sia i doppi apici dentro gli apici mantengono il loro valore letterale...

Rispondi