Домашня » як » У чому різниця між одиночними та подвійними цитатами в Bash Shell?

    У чому різниця між одиночними та подвійними цитатами в Bash Shell?

    Вкладання тексту в лапки є досить стандартною практикою в командному рядку, особливо при роботі з файлами, які мають пробіли в іменах, але як ви знаєте, чи використовувати одинарні або подвійні лапки? Давайте подивимося на різницю, і коли ви повинні використовувати один проти іншого.

    Загальне правило полягає в тому, що подвійні лапки все ще дозволяють розширювати змінні в котируваннях, а окремі лапки не мають. Продовжуйте читати.

    Цитати з простим текстом

    Якщо ви просто вкладете кілька слів у текст, це дійсно не має значення, який саме ви використовуєте, оскільки вони будуть працювати точно так само. Наприклад, ці дві команди створить каталог з тестовим каталогом:

    mkdir "Тестовий каталог"
    mkdir "Тестовий каталог"

    Більш досвідчені типи, ймовірно, відзначать, що ви також можете використовувати тест-каталог mkdir, якщо хочете.

    Розширення змінної оболонки

    Різниця між одинарними і подвійними лапками стає більш важливою, коли ви маєте справу з змінними в командному рядку за замовчуванням, bash збирається розширити змінну типу $ test на повну рядок. Спочатку ми призначимо змінну:

    test = "Це тест"

    Тепер ви можете використовувати цю змінну в командному рядку, подібно до цього, який повинен просто виводитися Це перевірка до консолі:

    echo $ test

    Тут різниця між подвійними і одинарними лапками стає більш зрозумілою - коли ви використовуєте одинарні лапки, змінні не будуть розширюватися. Наприклад, якщо ви виконуєте цю команду:

    echo '$ test'

    Ви не побачите нічого, крім "$ test" у командному рядку, коли ви використовуєте одинарні лапки, але він буде виводитися належним чином, коли ви використовуєте подвійні лапки:

    Те ж саме працює, коли ви використовуєте символ ', щоб розгорнути команду в командному рядку. Наприклад, скажіть, що ви хочете використовувати pwd команду з іншої команди - ви повинні використовувати backticks, щоб сказати оболонці розгорнути її:

    echo 'pwd' / test

    Якщо ви знаходитесь у домашній теці, ви побачите такий вигляд:

    / home / geek / test

    Скажімо, ви знаходитесь у папці, яка має пробіл у шляху, і ви хочете використовувати команду ln для створення символічної посилання на файл у поточному каталозі. Зазвичай потрібно вказати повний шлях при використанні команди ln, тому набагато простіше використовувати "pwd", щоб зберегти введення.

    Подивіться, що відбувається, коли ви намагаєтеся скористатися командою, не вкладаючи в лапки:

    ln -s 'pwd' / test / home / geek / linkedname

    Замість цього ви повинні оточити в лапках:

    ln -s "'pwd' / filename" / some / other / path

    Для більш конкретного прикладу, припустимо, що у нас є структура папок, як цей приклад, де всі імена файлів мають пробіли в них:

    Оскільки команда unzip не підтримує використання *, щоб запустити його проти всіх файлів, замість цього потрібно використовувати команду for. Ось де все цікаво:

    для f in * .zip; розпакуйте $ f;

    На жаль! Схоже, він не працював.

    Замість цього потрібно використовувати подвійні лапки навколо змінної $ f, наприклад:

    для f in * .zip; виконайте команду unzip "$ f";

    Тепер кожен раз, коли команда передається через цикл, вона дійсно виконає команду, подібну до цієї:

    розпакуйте "test 1.zip"

    Звичайно, це було б через цикл і запустити подібну команду для кожного файлу в каталозі.

    Давайте розглянемо

    Тепер, коли ми проаналізували приклади, ми швидко переглянемо, якщо ви пропустили його:

    Подвійні цитати

    • Використовується, коли потрібно вкласти змінні або використовувати розширення оболонки всередині рядка.
    • Усі символи в межах інтерпретуються як звичайні символи, за винятком $ або ', які будуть розширені на оболонці.

    Одиничні котирування

    • Усі символи в окремих лапках інтерпретуються як символьний рядок.

    І таким чином закінчується урок цитат. Використовуйте їх розумно.