GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi ‚A‘ na příkazovém řádku (bash)??

Tato otázka zde již má odpověď :Jaký je rozdíl mezi uvozovkami „…“, „…“, $“…“ a $“…“ v shellu?

(1 odpověď)
Uzavřeno před 2 lety .

Používal jsem '' a "" (jednoduché a dvojité uvozovky) zaměnitelně na příkazovém řádku, ale nedávno jsem si všiml, že '$HOME/some/dir' není rozbalen, zatímco "$HOME/some/dir" je. Trochu jsem prohledal a našel jsem, že "" umožňuje některé ochrana speciálních znaků, zatímco '' umožňuje plnou ochranu. Jaké další znaky jsou tedy chráněny '' a ne "" ?

EDIT:Jaké jsou praktické situace, ve kterých mohou být tyto rozdíly významné?

Přijatá odpověď:

Podívejte se na manuálovou stránku bash. Je tam celá sekce o citacích. Protože je to licencováno pod GFDL, která není kompatibilní se zde použitou licencí CC-BY-SA, nebudu citovat celou věc, ale opravdu přečtení je ta nejdefinitivnější odpověď.

Stručně řečeno, jednoduché uvozovky zastavují veškerou interpretaci – řetězec je vykreslen doslovně. Dvojité uvozovky ponechávají $ (znak dolaru), ` (backquote) jako speciální a (obrácené lomítko) jako speciální, když následují určité další znaky. A ! bude zpracováno speciálně, pokud je povolena funkce rozšíření historie (což je ve výchozím nastavení).

V praktickém použití, $ je velký problém, protože člověk může často chtít různá rozšíření, která umožňuje (proměnné a další), a přitom zabránit shellu zmatkovat většinu příkazového řádku.


Linux
  1. Jaký je rozdíl mezi strtok_r a strtok_s v C?

  2. Jaký je rozdíl mezi #!/usr/bin/env bash a #!/usr/bin/bash?

  3. Jaký je rozdíl mezi &> a >&v bash?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Rozdíl mezi operátory Bash [[ Vs [ Vs ( Vs ((?

  3. Jaký je rozdíl mezi unlink a rm?

  1. Rozdíl mezi potrubím a rozšířením příkazů?

  2. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  3. Rozdíl mezi ${} a $() v Bash