Розширення дужки - це корисна техніка для створення списків струн, які можуть бути використані в скриптах та псевдонімах та на командний рядок Linux. Заощаджуйте час і уникнути помилок, набравши менше.
Розширення
Перед башкою виконує команду У вікні терміналу або рядок у скрипті він перевіряє, чи потрібно виконувати будь-які заміни на команду. Імена змінних замінюються їхніми значеннями, псевдоніми замінюються командами, які вони скорочуються, і будь-яка експансія виконується. Розширення дужки - це одна форма розширення, яка підтримується bash.
Розширення фігурності доступна в сучасних оболонках, але це може бути відсутні з деяких старих оболонок. Якщо ви збираєтеся використовувати розширення смуги в скриптах, переконайтеся, що ви закликаєте оболонку, яка підтримує розширення підставки, наприклад, Bash:
Ми будемо використовувати Bash для наших прикладів.
Генераційні списки рядків можуть здаватися більш новинною, ніж користь, але це пропонує деяку функціональність, яка може заощадити час та натискання клавіш. Часто вона може забезпечити просте та елегантний вирішення проблеми або вимоги.
Прості розширення
Розширення фіксатора міститься між парою підтяжків "{}". Це може бути список елементів, розділених комами або специфікація діапазону. Простір не допускається всередині дужок, якщо ви не загорнуте рядок у лапках "
"
. "
Для списку, розділеного комами, процес розширення здійснює кожен елемент у свою чергу, і передає його до командної команди. У цьому прикладі це
ехо
що просто
друкує їх у вікні терміналу
. Зауважте, що коми ігноруються.
echo {один, два, три, чотири}
Список може бути словами або цифрами.
echo {1,2,3,4}
Порядок елементів списку абсолютно довільний.
echo (4,2,3,1)
Діапазон розширення має початок і кінцевий символ, пов'язаний з двома періодами "
..
- Без будь-якого пробілу. Всі елементи відсутніх списків надаються автоматично розширенням, щоб створити весь діапазон від запуску символу для кінцевого символу.
Це друкує цифри від 1 до 10.
echo {1..10}
Нумерація є довільною. Це не потрібно починати з одного.
echo {3..12}
Діапазони можна вказати, щоб вони бігли назад. Це буде створювати список від п'яти до одного.
echo {5..1}
Діапазони можуть включати негативні числа.
echo {4 ..- 4}
Як ми раніше вказали, діапазон має початок і кінець характер . Це не повинно бути числом. Це може бути лист.
echo {q..v}
Букви також можуть запустити назад.
echo {f..a}
Використовуючи розширення дужки з петлями
Ви можете використовувати розширення дуги з діапазонами в петель у скриптах.
Для i в {3..7}
робити
echo $ i
зроблено
Діапазони розширення дужки дозволяють використовувати символи як змінну циклу.
для i в {m..q}
робити
echo $ i
зроблено
Петлі, як правило, використовуються в скриптах, але нема чого зупинити вас від набору їх у командну лінію, щоб побачити, що станеться.
для i в {3..7}; робити echo $ i; зроблено
для i в {m..q}; робити echo $ i; зроблено
Об'єднавши та гніздування
Два сусідніх розширень не діють самостійно один за одним. Вони взаємодіють. Кожен елемент у першій експансії виступає кожним елементом у другому розширенні.
echo {q..v} {1..3}
Розширення також можуть бути вкладені. Вкладене розширення буде діяти на елемент, який негайно передує його.
echo {part-1, part-2 {a, b, c, d}, part-3}
Ви також можете гніздити розширення, створивши список розмежування комами.
echo {{5..0}, {1..5}}
Преамбула і postscript
Ви можете помістити текст до і після розширення дужки, щоб мати цей текст, включений до результатів розширення. Текст, поставлений перед розширенням, називається преамбулою, тоді як текст, розміщений за розширенням фіксації, називається PostScript.
Ця команда використовує преамбулу.
Ехо Глава {1..3}
Цей приклад використовує PostScript:
echo {вміст, папір, білбіографія} .md
І ця команда використовує обидва.
Echo Chapter- {1..4} .md
Розширення імен і довідників файлів
Як ви, напевно, здогадалися зараз, одним з основних використання розширень Brace є створення імен файлів та каталогів, які можуть бути передані іншим командам. Ми використовували
ехо
Як зручний спосіб побачити саме те, що відбувається, коли спрацьовує розширення. Ви можете замінити будь-яку команду, яка приймає імена файлів або імена каталогів як вхідні та використовуйте розширення скот.
Швидко
Створіть деякі файли
, використання
дотик
:
сенсорний файл - {1..4} .txt
LS * .txt
Якщо у вас є багато файлів з тією ж базовою іменем, але різні розширення файлів, і ви хочете виконати операцію на підмножині з них, розширення дужки можуть допомогти. Тут ми стикуємо підмножину файлів, які мають "програму", як база імену в ZIP-файл під назвою "Source-Code.Zip".
Довідники з розробки містять багато файлів, які матимуть однакову назву бази, як ваша основна програма. Зазвичай ви не хочете створювати резервні копії або поширювати файли, такі як ".o" Файли об'єктів. Це акуратний спосіб включити лише типи файлів.
програма вихідного коду Zip {.c, .h, .css}
Ця команда зробить копію файлу та додавання ".bak" до нього, створюючи резервну копію оригінального файлу. Цікава точка дозначення полягає в тому, що розширення кріплення містить список, що розділений комами, але перший елемент порожній. Якби ми не включили кому, розширення не відбудеться.
cp brace / new / prog-1.c {, bak}
ls brace / new / prog-1.c.bak
Щоб виконати деякі дії на двох файлах у різних каталогах, ми можемо використовувати розширення дуги на шляху до файлів.
У цьому прикладі каталог "Brace" містить дві підкаталоги, називаються "новими", а кожен називається "старий". Вони містять різні варіанти одного і того ж набору файлів вихідного коду. Ми будемо використовувати
різко
Програма бачити відмінності між двома версіями "PROG-1.C".
diff brace / {new, old} /prog-1.c
Якщо у вас є стандартний скелет каталогів, який вам потрібно створити на початку проекту, ви можете швидко створити їх, використовуючи розширення дуги. Точний
mkdir
-п
(Батько)
створює будь-які відсутні батьківські каталоги
Коли створюється каталог дитини.
mkdir -p {Джерело, побудова, людина, допомога {/ pages, / yelp, / зображення}}
Дерево
Ви можете використовувати розширення дуги
вигин
до
Завантажте кілька файлів
.
У цій команді ми збираємося завантажувати файли з двох каталогів, які називаються "test1" та "test2". Кожен каталог утримує два файли під назвою "Картина1" та "Картина2". "
WGet https://www.url-of-your-choice.com/test{1,2}/picture {001,002.jpg
Лістинг файли показує вам файли, які були витягнуті та як
вигин
Перейменуйте файли, щоб уникнути назви зіткнень з існуючими файлами.
ls picture *. *
Обіймати фігуру
Здається, що розширення дуги є ще одним з Найкращі таємниці Linux . Багато людей кажуть мені, що вони ніколи не чули про розширення дужки, тоді як інші повідомить мені, що це одна з улюблених трюків командного рядка.
Дайте йому спробувати, і це просто може знайти свій шлях до вашого набору командного рядка до трюків.