Dans les scripts de shell Bash, quelle est la différence entre guillemets simples ( ) et double quotes (
) ?
Réponses
Trop de publicités?Les guillemets simples de ne pas interpoler quoi que ce soit, mais guillemets doubles (par exemple, des variables, des backticks, certains \
s'échappe, etc...)
Le Bash manuel a ceci à dire:
3.1.2.2 Les Guillemets Simples
En joignant les caractères entre guillemets simples (‘') préserve la valeur littérale de chaque caractère dans la cite. Une seule citation ne peut se produire entre des guillemets simples, même lorsqu'il est précédé d'une barre oblique inverse.
En joignant les caractères entre guillemets doubles (‘"') préserve la valeur littérale de tous les caractères dans le devis, à l'exception de‘$', ‘', ‘\', et, lorsque l'histoire de l'expansion est activé, ‘!'. Les caractères " $ " et ‘ conservent leur signification spéciale à l'intérieur de guillemets doubles (voir Shell Extension). La barre oblique inverse conserve sa signification spéciale seulement lorsqu'il est suivi par l'un des caractères suivants: ‘$', ‘', ‘"', ‘\', ou retour à la ligne. À l'intérieur de guillemets doubles barres obliques inverses qui sont suivies par un de ces caractères sont supprimés. Les barres obliques inverses précédent caractères sans signification particulière sont retenues. Une double citation peut être cité à l'intérieur de guillemets doubles en le faisant précéder d'une barre oblique inverse. Si l'option est activée, l'histoire de l'expansion sera effectué à moins qu'un ‘!' apparaissant dans les guillemets échappés à l'aide d'une barre oblique inverse. La barre oblique inverse précédant le ‘!' n'est pas supprimé.
Les paramètres spéciaux ‘*' et ‘@' ont une signification particulière lorsque doubles guillemets (voir Shell Paramètre d'Extension).