GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza tra "e" sulla riga di comando (bash)??

Questa domanda ha già una risposta qui :Qual è la differenza tra le virgolette “…”, '…', $'…' e $“…” nella shell?

(1 risposta)
Chiuso 2 anni fa .

Usavo '' e "" (virgolette singole e doppie) in modo intercambiabile sulla riga di comando, ma di recente ho notato che '$HOME/some/dir' non è espanso, mentre "$HOME/some/dir" è. Ho cercato un po' e ho trovato quel "" consente alcuni protezione dei caratteri speciali, mentre '' consente una protezione totale. Quindi quali altri caratteri sono protetti da '' e non "" ?

EDIT:Cosa sono pratici situazioni in cui queste differenze potrebbero essere significative?

Risposta accettata:

Dai un'occhiata alla pagina man di bash. C'è un'intera sezione sulla citazione. Poiché questa licenza è concessa in base alla GFDL, che non è compatibile con la licenza CC-BY-SA utilizzata qui, non citerò il tutto, ma leggendo davvero che è la risposta più definitiva.

In sintesi, le virgolette singole interrompono ogni interpretazione:la stringa viene resa letteralmente. Le virgolette doppie lasciano $ (segno del dollaro), ` (backquote) come speciale e (barra rovesciata) come speciale se seguito da determinati altri caratteri. E ! verrà trattato in modo speciale se la funzione di espansione della cronologia è abilitata (che è per impostazione predefinita).

Nell'uso pratico, il $ è il grosso problema, poiché spesso si possono desiderare le varie espansioni che consente (variabili e altro), pur impedendo alla shell di confondere la maggior parte della riga di comando.


Linux
  1. Qual è la differenza tra individuare e trovare il comando in Linux

  2. Qual è la differenza tra strtok_r e strtok_s in C?

  3. Differenza tra ${} e $() in Bash

  4. Qual è la differenza tra &> e >&in bash?

  5. Differenza tra '{}' e {} nel comando find?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Cat e Touch Command

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra i comandi kill e killall?