Podczas wpisywania adresu URL Kierunków Google Maps w wierszu polecenia (do otwierania w przeglądarce Chrome za pomocą terminala &
) w adresie URL znajduje się znak „ampersand” , jednak terminal go tam łamie, ponieważ uniksowe rzeczy są uniksowe. Czy jest coś, co mogę wpisać w terminalu, co gdy polecenie faktycznie przejdzie, będzie traktowane jak znak handlowego?
Will; amp; praca?
command-line
bash
Leron
źródło
źródło
Cytuje to naprawią, ale możesz też uciec przed ukośnikiem:
Nie twierdząc, że jest to lepsze, w każdym razie jest to kolejna opcja dla takich sytuacji.
źródło
W tym przypadku tak naprawdę nie będzie to miało znaczenia, ale istnieje różnica między pojedynczymi cudzysłowami i podwójnymi cudzysłowami.
Podwójne cudzysłowy zastąpią znaki specjalne, takie jak „$” i cudzysłowy, podczas gdy pojedyncze cudzysłowy traktują wszystko dosłownie, z wyjątkiem zamykającego pojedynczego cudzysłowu.
Oba zgrupują tekst razem, co powoduje, że chrom traktuje go jako pojedynczy argument, a znaki takie jak „; # &” nie mają specjalnego znaczenia w tym kontekście.
To pokazuje użycie „\” do uniknięcia podwójnego cudzysłowu w podwójnych cudzysłowach i samego odwrotnego ukośnika:
W przypadku pojedynczych cytatów nic się nie zmienia:
Bez cudzysłowu znak „&” dzieli go na dwa polecenia:
Zwykle, mając do czynienia z jednym rodzajem cytatu, możesz po prostu zawinąć go w inny typ, ale możesz mieć z tym problemy:
Pojedyncze cudzysłowy nie są zastępowane, ale „$” jest. Działa jednak następująca składnia:
źródło