Во всех вышеперечисленных случаях переменная правильно установлена, но неправильно прочитана! Правильный способ заключается в использовании двойных кавычек при ссылке на :
echo "$var"
Это дает ожидаемое значение во всех приведенных примерах. Всегда указывайте ссылки на переменные!
Почему?
Если переменная некорректна, она будет:
/* Foobar is free software */
После: /*
, Foobar
, is
, free
, software
, */
/*
После: /bin
, /boot
, /dev
, /etc
, /home
, ... /bin /boot /dev /etc /home Foobar is free software Desktop/ Downloads/
вместо значения переменной. Когда переменная цитируется:
Вот почему вы всегда должны цитируйте все ссылки на переменные, если вы специально не требуете разделения слов и расширения имени пути. Инструменты, такие как shellcheck , могут помочь и будут предупреждать о недостающих котировках во всех вышеперечисленных случаях.