Różnica między pojedynczymi i podwójnymi cytatami w Bash

Różnica między pojedynczymi i podwójnymi cytatami w Bash

Bash, powłoka używana w większości dystrybucji Linuksa, zapewnia kilka sposobów cytowania ciągów. Wśród nich pojedyncze cytaty (”) i podwójne cytaty („”) są najczęściej używane. Chociaż mogą wyglądać podobnie, mają inne zachowanie i mogą wpływać na sposób interpretacji zawartości ciągu.

W tym artykule zbadamy różnice między pojedynczymi i podwójnymi cytatami w Bash.

Pojedyncze cytaty (")

Pojedyncze cytaty są używane do zamknięcia sznurka w Bash. Gdy ciąg jest zamknięty w pojedynczych cytatach, skorupa traktuje zawartość sznurka jako dosłownego ciągu, bez żadnej interpretacji. Oznacza to, że wszystkie znaki specjalne w pojedynczych cytatach są traktowane jako zwykłe postacie i nie ma miejsca rozszerzenie ani podstawienie.

Na przykład, jeśli mamy ciąg, który zawiera znak dolara ($), który jest postacią specjalną w Bash i załączamy ją w pojedynczych cytatach, znak dolara jest traktowany jako zwykły charakter i nie rozszerzony. Oto przykład:

echo „moja pensja to 1000 $”
1echo „moja pensja to 1000 $”

W tym przykładzie ciąg „Moja pensja to 1000 $” jest zamknięty w pojedynczych cytatach. Kiedy uruchamiamy polecenie, powłoka traktuje ciąg jako dosłowny ciąg i drukuje go dokładnie tak, jak jest, bez rozszerzania znaku dolara.

Podwójne cytaty („”)

Podwójne cytaty są również używane do zamknięcia sznurka w Bash. Gdy ciąg jest zamknięty w podwójnych cytatach, skorupa traktuje zawartość sznurka inaczej niż z pojedynczymi cytatami. W szczególności powłoka rozszerza zmienne i niektóre znaki specjalne w podwójnych cytatach.

Na przykład, jeśli mamy zmienną $ Nazwa który zawiera wartość 'Jan', I załączamy go w podwójne cytaty, powłoka rozszerza zmienną i zastępuje jej wartość w ciągu. Oto przykład:

Name = „John” echo ”Hello, $ Nazwa!"
12Name = 'John'echo "Hello, $ Nazwa!"

W tym przykładzie nazwa zmiennej $ jest zamknięta w podwójnych cytatach. Po uruchomieniu polecenia powłoka rozszerza zmienną i zastępuje jej wartość w ciągu, co powoduje wyjście 'Cześć John!'.

Podwójne cytaty pozwalają również na użycie niektórych znaków specjalnych, takich jak oprawy odwrotne (\) i wykrzykniki (!) W ciągu ciągu. Te postacie można uciec za pomocą opóźnienia (\) Aby uniknąć ich szczególnego znaczenia.

Na przykład, jeśli chcemy uwzględnić wykrzyknik w naszym ciągu, który ma szczególne znaczenie w Bash, możemy uciec od opóźnienia, aby uniknąć jego specjalnego znaczenia. Oto przykład:

echo "To wykrzyknik: \!"
1echo "To wykrzyknik: \!"

W tym przykładzie wykrzyknik ucieka ukośnik wsteczny (!) Aby uniknąć jego szczególnego znaczenia. Kiedy uruchamiamy polecenie, powłoka traktuje wykrzyknik jako zwykły znak i drukuje go w wyjściu.

Wniosek

Podsumowując, główną różnicą między pojedynczymi cytatami a podwójnymi cytatami w Bash jest sposób, w jaki skorupa traktuje zawartość ciągu. Pojedyncze cytaty traktują zawartość łańcucha jako ciąg dosłownego, bez żadnej interpretacji lub podstawienia, podczas gdy podwójne cytaty pozwalają na rozszerzenie zmiennych i niektórych znaków specjalnych. Podczas korzystania z cytatów w BASH ważne jest zrozumienie różnic między pojedynczymi i podwójnymi cytatami i wybierz odpowiednią na podstawie zamierzonego zachowania.