Różnica między pojedynczymi i podwójnymi cytatami w Bash
- 1841
- 421
- Tomasz Szatkowski
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 $”1 | echo „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!"12 | Name = '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: \!"1 | echo "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.