Qual è la differenza tra `e 'nella programmazione, come MySQL e shell
Domanda
phpMySQL usa i backtick `per circondare i nomi delle colonne, e ho appena visto che le persone usano i backtick negli script della shell.
È lo stesso se usano '?
Soluzione
In MySQL
, i backtick possono essere usati per racchiudere nomi di tabelle e colonne che sono parole riservate, come questa:
SELECT *
FROM `table`
Le virgolette singole indicano semplicemente una costante di stringa:
SELECT *
FROM `table`
WHERE `name` = 'test'
Nelle shell, i backtick ti permettono di usare l'output di un comando come argomento per un altro comando:
echo `date`
eseguirà date
e utilizzerà il suo output come argomento per echo
.
Le virgolette singole consentono di utilizzare spazi bianchi, segni di dollaro e barre rovesciate all'interno degli argomenti:
echo '$HOSTNAME'
genererà la stringa $ HOSTNAME
così com'è,
echo $HOSTNAME
echo "$HOSTNAME"
entrambi genereranno il valore della variabile di ambiente HOSTNAME
.
Altri suggerimenti
Nella shell, una coppia di backtick verrà sostituita dall'output (stdout) del comando che racchiudono.
X=`expr 3 \* 2 + 4` # expr evaluate arithmatic expressions. man expr for details.
echo “$X”