На терминале (удар), когда я ввожу
var=someValue
echo $var --> 1
echo "$var" --> 2
Сформируйтесь 1, и 2 я получаю те же результаты, поэтому каково различие между ними?
Когда мы должны использовать двойные кавычки, и когда мы не должны использовать их?
Нет никакого различия между echo $var
и echo "$var"
.
Однако для других команд такой как ls
(файлы списка) могла быть большая разница.
Попытка это в Вашем терминале:
$ touch "File A"
$ var="File A"
$ ls $var
ls: cannot access 'File': No such file or directory
ls: cannot access 'A': No such file or directory
$ ls "$var"
File A
двойные кавычки "
говорит Linux рассматривать все промежуточное как единственный объект. Без двойных кавычек все внутри рассматривают как отдельные объекты, очерченные пробелами.
Так в первом примере $var
две разных вещи "Файл" и "A".
Во втором примере "$var"
одна вещь "File A"
.
Эти echo
команда автоматически обрабатывает отдельное слово или несколько слов до конца строки как одна вещь. Много других команд ожидают одну или несколько вещей.
Различие прибывает при хранении много строки строки в переменной и попытке повторить его.
Попытка это:
$var="this is a
line of
code"
$ echo $var
this is a line of code
$ echo "$var"
this is a
line of
code