GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre " et " sur la ligne de commande (bash) ? ?

Cette question a déjà une réponse ici :Quelle est la différence entre les guillemets "...", '...', $'...' et $"..." dans le shell ?

(1 réponse)
Fermé il y a 2 ans .

J'avais l'habitude d'utiliser '' et "" (guillemets simples et doubles) indifféremment sur la ligne de commande, mais j'ai récemment remarqué que '$HOME/some/dir' n'est pas développé, tandis que "$HOME/some/dir" est. J'ai cherché un peu et j'ai trouvé que "" autorise certains protection des caractères spéciaux, tandis que '' permet une protection complète. Alors quels autres caractères sont protégés par '' et non "" ?

EDIT :Quels sont les éléments pratiques situations dans lesquelles ces différences pourraient être significatives ?

Réponse acceptée :

Jetez un œil à la page de manuel de bash. Il y a une section entière sur les citations. Parce que cela est sous licence GFDL, qui n'est pas compatible avec la licence CC-BY-SA utilisée ici, je ne citerai pas tout, mais vraiment lire cela est la réponse la plus définitive.

En résumé, les guillemets simples arrêtent toute interprétation - la chaîne est rendue littéralement. Les guillemets doubles laissent $ (signe dollar), ` (backquote) comme spécial, et (barre oblique inverse) comme spécial lorsqu'il est suivi de certains autres caractères. Et ! sera traité spécialement si la fonctionnalité d'extension de l'historique est activée (ce qui est le cas par défaut).

En pratique, le $ est le gros problème, car on peut souvent vouloir les diverses extensions qu'il permet (variables et plus), tout en empêchant le shell de brouiller la majeure partie de la ligne de commande.


Linux
  1. Quelle est la différence entre la commande locate et find sous Linux

  2. Quelle est la différence entre strtok_r et strtok_s en C ?

  3. Différence entre '{}' et {} dans la commande find ?

  4. Différence entre cp -r et cp -R (commande de copie)

  5. Différence entre 'man ls' et 'ls --help' ?

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre le chat et la commande tactile

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

Quelle est la différence entre les commandes kill et killall ?