Znak dolara w poleceniu powłoki mdfind


2

Jestem nowicjuszem w skryptowaniu powłoki. Jaka jest różnica między tymi dwoma poleceniami? Jaki jest pożytek ze znaku dolara?

mdfind $'kMDItemFSName="*iValet\'s*"c'
mdfind 'kMDItemFSName="*iValet\'s*"c'

@ 0942v8653 dziękuję, teraz wszystko jest jasne.
Paul Claude

Odpowiedzi:


3

Znak dolara przed ciągiem z pojedynczym cudzysłowem jest po prostu innym typem ciągu, ale pozwala na znaki ucieczki w stylu C, takie jak \n i \'.

Został użyty w poleceniu, które wymieniłeś, ponieważ zawiera ucieczkę dla pojedynczego cudzysłowu - normalne ciągi pojedynczych cudzysłowów nie pozwalają każdy ucieka w ogóle, w tym ucieczki '. Ukośniki odwrotne są interpretowane dosłownie. Więc używając $'…' uniknął ucieczki podwójnych cudzysłowów i pozwolił, by ciąg miał ' w tym.

Istnieje więcej informacji na temat tego typu cytowania tutaj na Wiki Bash Hackers .


1
Nigdy nie słyszałem o C-stringach w bashu. Schludny.
Jason Salaz
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.