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'
macos
command-line
Paul Claude
źródło
źródło
Odpowiedzi:
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 .
źródło