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'
Paul Claude
źródło
@ 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 .

0942v8653
źródło
1
Nigdy nie słyszałem o C-stringach w bashu. Schludny.
Jason Salaz