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'
la source
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'
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 \n
et \'
.
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 .