Pojedynczy cytat i ukośnik odwrotny


10
~$ echo $'\'test'
'test

man bash mówi:

Umieszczanie znaków w pojedynczych cudzysłowach zachowuje dosłowną wartość każdego znaku w cudzysłowach. Pojedynczy cytat może nie wystąpić między pojedynczymi cudzysłowami, nawet jeśli poprzedzony jest odwrotnym ukośnikiem.

Dlaczego więc działa w echopoleceniu?

Odpowiedzi:


16

Pojedyncze cytaty '...'różnią się od pojedynczych kwotowań w dolarach $'...'. Ten pierwszy nie obsługuje odwrotnego ukośnika, a drugi używa specyfikacji ANSI C.


14

chorobaodpowiedź jest całkowicie poprawna, oto szczegóły z man bash:

Słowa w postaci $ „string” są traktowane specjalnie. Słowo rozwija się do
ciąg znaków, z zastąpionymi znakami odwrotnego ukośnika znakami określonymi przez ANSI C.
standard. Sekwencje specjalne odwrotnego ukośnika, jeśli występują, są dekodowane w następujący sposób:
              \ alert (dzwonek)
              \ b Backspace
              \mi
              \ E znak ucieczki
              kanał informacyjny
              \ n nowa linia
              powrót karetki
              Zakładka pozioma
              \ v zakładka pionowa
              \\ ukośnik wsteczny
              pojedynczy cytat
              \" cudzysłów
              \? znak zapytania
              \ nn ośmiobitowy znak, którego wartość jest wartością ósemkową
                     nnn (jedna do trzech cyfr)
              \ xHH ośmiobitowy znak, którego wartość jest szesnastkowa
                     wartość HH (jedna lub dwie cyfry szesnastkowe)
              \ uHHHH znak Unicode (ISO / IEC 10646), którego wartość to
                     wartość szesnastkowa HHHH (jedna do czterech cyfr szesnastkowych)
              \ UHHHHHHHH
                     znak Unicode (ISO / IEC 10646), którego wartość to
                     wartość szesnastkowa HHHHHHHH (jedna do ośmiu cyfr szesnastkowych)
              \ cx znak Control-x

Dlatego!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.