Возможный дубликат:
$VAR против ${VAR} и цитировать или нет
Я присвоил переменной var значение следующим образом:
pradeep@pradeep-laptop:~$ var="Pradeep
> is
> a good
> boy"
Затем я выполнил команду echo:
pradeep@pradeep-laptop:~$ echo $var
Pradeep is a good boy
и для команды:
pradeep@pradeep-laptop:~$ echo "$var"
Pradeep
is
a good
boy
Я хочу знать, почему существует разница в результатах?
решение1
Расширения, которые происходят внутри двойных кавычек ( "
), не подвергаютсярасщепление поля.
В echo $var
, поскольку расширение $var
не происходит внутри двойных кавычек, оно подвергается разделению. Оболочка запускается echo
с 5 аргументами: Pradeep
, is
, a
, good
, boy
. echo
печатает все свои аргументы, разделенные пробелом.
В echo "$var"
, расширение $var
происходит в двойных кавычках, поэтому оно не подвергается разбиению. Оболочка запускается echo
с одним аргументом,
Pradeep
is
a good
boy
который echo
добросовестно печатает.