Repository 32bit  Forum
Repository 64bit  Wiki

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.

Re: Strano problema con script BASH

Messaggioda anycolouryoulike » gio ott 16, 2008 13:44

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: gio ago 09, 2007 23:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano problema con script BASH

Messaggioda anycolouryoulike » gio ott 16, 2008 13:54

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: gio ago 09, 2007 23:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano problema con script BASH

Messaggioda anycolouryoulike » gio ott 16, 2008 14:13

Forse ho trovato: http://www.gnu.org/software/bash/manual/bashref.html.gz#Quote-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
anycolouryoulike
Packager
Packager
 
Messaggi: 1158
Iscritto il: gio ago 09, 2007 23:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Strano problema con script BASH

Messaggioda conraid » gio ott 16, 2008 14:26

anycolouryoulike ha scritto:Forse ho trovato: http://www.gnu.org/software/bash/manual/bashref.html.gz#Quote-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
conraid
Staff
Staff
 
Messaggi: 12022
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Strano problema con script BASH

Messaggioda anycolouryoulike » ven ott 17, 2008 12:09

conraid ha scritto:
anycolouryoulike ha scritto:Forse ho trovato: http://www.gnu.org/software/bash/manual/bashref.html.gz#Quote-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...
Avatar utente
anycolouryoulike
Packager
Packager
 
Messaggi: 1158
Iscritto il: gio ago 09, 2007 23:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Precedente

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti