Sono un novizio nello scripting di shell. Qual è la differenza tra questi due comandi? A cosa serve il simbolo del dollaro?
mdfind $'kMDItemFSName="*iValet\'s*"c'
mdfind 'kMDItemFSName="*iValet\'s*"c'
Sono un novizio nello scripting di shell. Qual è la differenza tra questi due comandi? A cosa serve il simbolo del dollaro?
mdfind $'kMDItemFSName="*iValet\'s*"c'
mdfind 'kMDItemFSName="*iValet\'s*"c'
Un segno di dollaro prima di una stringa con quotatura singola è solo un altro tipo di stringa, ma consente caratteri di escape simili a C, come \n
e \'
.
È stato usato nel comando che hai menzionato perché contiene una escape per le virgolette singole virgolette singole-normali non consentono affatto le fughe any , compresi gli escape di '
. I backslash sono interpretati letteralmente. Pertanto, utilizzando $'…'
ha evitato l'escape delle virgolette doppie e ha consentito alla stringa di contenere '
.
Ci sono ulteriori informazioni su questo tipo di citazione di stringhe qui sul Wiki di Bash Hackers .
Leggi altre domande sui tag command-line macos