Repository 32bit  Forum
Repository 64bit  Wiki

Strano problema con script BASH

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 14: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: ven ago 10, 2007 0: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: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: ven ago 10, 2007 0: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 15: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: ven ago 10, 2007 0: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 15: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: 11892
Iscritto il: gio lug 14, 2005 0:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Strano problema con script BASH

Messaggioda anycolouryoulike » ven ott 17, 2008 13: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: ven ago 10, 2007 0: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