Signe dollar dans la commande shell mdfind

2

Je suis un débutant dans les scripts shell. Quelle est la différence entre ces deux commandes? Quelle est l'utilisation du signe dollar?

mdfind $'kMDItemFSName="*iValet\'s*"c'
mdfind 'kMDItemFSName="*iValet\'s*"c'
Paul claude
la source

Réponses:

3

Un signe dollar avant une chaîne entre guillemets n'est qu'un autre type de chaîne, mais il permet l'utilisation de caractères d'échappement similaires à ceux du C, tels que \net \'.

Il a été utilisé dans la commande que vous avez mentionnée car il contient un échappement pour les guillemets simples. Les chaînes entre guillemets simples normales ne permettent aucun échappement, y compris les échappements de '. Les barres obliques inverses sont interprétées littéralement. Donc, en l'utilisant, $'…'cela évitait d'échapper aux guillemets et permettait à la chaîne de contenir un '.

Il y a quelques informations supplémentaires sur ce type de chaîne citant ici sur le Wiki Bash Hackers .

0942v8653
la source
1
Je n'ai jamais entendu parler de c-strings à Bash. Soigné.
Jason Salaz