Джеймс правильний, але, щоб додати ще кілька даних, я вважаю, що найкращий спосіб подумати над цим як аргументи до команди: чи ви маєте намір "привіт" та "світ" - це два аргументи чи "привіт світ", щоб бути одним аргумент.
Також подвійні лапки дозволяють інтерпретувати більше, ніж просто змінні. Саме це залежить від вашої оболонки, але перевірте розширення історії, розширення дужок та розширення імені файлів.
Також важливо зазначити, що є деякі випадки, коли вам потрібно використовувати обидва типи цитат в одному аргументі. Пам’ятайте, що (за замовчуванням) аргументи розмежовані пробілом, тому якщо ви не залишаєте місця, ви все одно вказуєте той самий аргумент.
Механізм одиночного котирування оболонок більшості оболонок не передбачає жодних спеціальних символів, а це означає, що будь-який примірник іншої цитати, навіть якщо вона, здається, уникнула, закінчує цитату. Тому неможливо пропустити рядок з одним цитатам всередині одноцитованого рядка, і вам доведеться використовувати подвійні лапки. Це може бути болем, коли ви хочете передати аргумент, що містить одиничні цитати та щось, що було б інтерпретовано, але ви цього не хочете. Наприклад, якщо ви хотіли передати буквальний рядок "` `$ VAR 'є змінною", вам потрібно зробити це так:
"'"'$VAR'"' is a variable"
Це насправді об'єднання трьох рядків, що уникнули цитат:
"'"
'$VAR'
"' is a variable"
або, з вилученими цитатами:
'
$VAR
' is a variable
Насправді, з більшості снарядів, ви також можете це зробити так:
"'\$VAR' is a variable"
де зворотна косою рисою (" \
") вказує оболонці буквально приймати наступний символ і не робити його розширення.
Але є деякі випадки, коли в кінцевому підсумку потрібно робити це способом багаторядкового конкатенації, не те, що я насправді зараз можу привести приклад.