[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] BASH - SQLite query - espansione variabili



Ciao Teodoro,
mi intrometto sulla discussione a proposito dell'espansione delle
variabili.

Il giorno gio, 26/10/2017 alle 08.45 +0200, Teodoro Santoni ha
scritto:[...]
> Non ho capito come hai fatto senza export a far espandere quella
> variabile dentro una stringa con apici singoli ma vabbè, magari
> intendevi che hai usato ...

la differenza tra le virgolette singole e le doppie nella shell è che
nelle prime non avviene l'espansione di nessuna variabile, mentre nelle
seconde sì, quindi se vuoi espandere la variabile DATA devi usare le
virgolette doppie.
Invece l'export serve a passare la definizione della variabile ai
programmi chiamati dalla shell.

Esempi:

~$ x=4; sh -c "echo ++${x}++"
++4++

in questo caso la variabile è espansa dalla shell corrente perché uso
le virgolette doppie. La variabile è sostituita nella riga di comando,
ma non è passata al comando sh.

~$ y=4; sh -c 'echo ++${y}++'
++++

qui invece uso le virgolette singole, quindi non c'è la sostituzione
della variabile nella riga di comando, e la seconda shell non conosce
la variabile y.

~$ export z=4; sh -c 'echo ++${z}++'
++4++

qui invece ho fatto l'export, quindi la variabile z è inserita tra
quelle da passare al comando sh, il quale a sua volta fa l'espansione.

Ciao,
Giuseppe


Reply to: