Перш за все, я хотів би вибачитися, оскільки минулої п’ятниці я не міг написати пост, тому сьогодні я додаю додаткову інформацію, щоб компенсувати втрачений день. 🙂
Розширення брекетів
Іспанською мовою розширення ключів мені здається функцією, натхненною C Оболонка, це генерує комбінації між символами, які вводяться всередину фігурних дужок, порядок яких він використовується - зліва направо. Це зовсім не складно, але це варіант, який буде дуже корисним у наших турах по GNU / Linux.
Приклад:
$ echo a {1,2,3} a1 a2 a3
При використанні з комами (,) генерує комбінації між значенням a і значеннями в дужках. Якби за фігурними дужками не було значення, воно відображало б лише один раз кожне значення, яке містить ключ.
$ echo {a, b, c} abc
Його використання зовсім не складне, є й інші більш поширені приклади, такі як створення багатьох каталогів у папці
$ mkdir ~ / Вакансії / {один, два, три, чотири, п’ять}
Це створює п’ять папок у папці завдань, це все одно, що вводити одну команду за раз. Створення 5 каталогів.
Є розширення на два моменти .. це створює ряд цифр або символів, які переходять від початкового значення до кінцевого, не використовуйте цифри з літерами.
$ echo {1..5} # Правильно 1 2 3 4 5 $ echo {a..f} # Правильно abcdf $ echo {a..5} # Неправильно {a..5} # Думаю, ніколи не отримаю звикли до цього синього кольору в листі
Ми можемо заощадити час, створивши цикл та цінності
# Замість написання $ for ((i = 1; i <= 5; i ++)); виконати ехо "Мій номер $ i"; готово Мій номер 1 Мій номер 2 Мій номер 3 Мій номер 4 Мій номер 5 # Зберегти код за допомогою розширення фігурних дужок. $ за i за {1..5}; do echo "Мій номер $ i; готовий Мій номер 1 Мій номер 2 Мій номер 3 Мій номер 4 Мій номер 5 # Звичайно, це допустимо використовувати, хоча результат відрізняється. $ echo" Мій номер "{1..5} Мій номер 1 Мій номер 2 Мій номер 3 Мій номер 4 Мій номер 5
Ну, я думаю, що концепція зрозуміла, ха-ха, зараз я лише прокоментую, що її можна поєднувати та вкладати. Що я маю на увазі під цим?
За допомогою комбінованого ми можемо поєднати один або кілька ключів
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
За умови вкладеності, як багато хто собі уявляє, ви можете використовувати клавіші розширення всередині ключів розширення
$ echo {a, c {1..3}, d} a c1 c2 c3 d
І нарешті з Bash НІЧОГО можна збільшити значення.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
Це все на сьогодні, тож дякую за читання мені, люди 🙂
Extra
Як створити локальний смітник
Коли я кажу а Бен local я маю на увазі каталог, в якому ми маємо власні сценарії, і їх можна виконати як просту команду ...
Досягти цього відносно просто, перше, що потрібно зробити, це створити каталог, де ми будемо зберігати сценарії.
mkdir ~ / .bin # У цьому прикладі це буде приховано
Тепер у нас є наша папка для збереження сценаріїв, але вона не буде працювати, поки ми не додамо шлях до нового .bin до $ PATH
Для цього файл редагується bash_profile, і рядок додано.
експорт PATH = $ PATH: ~ / .bin
І voila, цього достатньо для створення локального коду, звичайно, він запитає дозволи root, якщо це необхідно, для прикладу ми пишемо швидкий сценарій.
#! / bin / bash echo "Привіт $ 1, як справи?"
Збережіть його з назвою привіт
Сценарію надано дозвіл на виконання, і цього буде достатньо, щоб викликати його з терміналу
$ hello wada # Це покаже повідомлення Hello wada, як справи?
Тож за допомогою цього швидкого трюку ви можете швидше запускати свої сценарії
Це все для сьогоднішніх людей, які добре 🙂
PS Вибачте за помилки, якщо вони є, у мене очі вже закриваються ха-ха-ха 😀
Я довгий час працював у випуску bash, і я не розумів розширення фігурних дужок, дякую.
Щодо фокусу на шляху, Fedora за замовчуванням робить щось подібне, але в "~ / .local / bin" див. Фрагмент із файлу bash_profile, який я приніс Джессі.
PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
експортний ШЛЯХ
У мене є деякі занепокоєння:
1. Як я можу змусити його дати мені два інтервали з розширенням по крапках; вік {1..24,55..90}, і що я збільшую вік з 1 до 24 і продовжую з 55 до дев'яноста. як я це зробив, це не спрацювало. Чому?
2. Якщо я хочу, щоб перше значення було нульовим, і продовжувати нумерацію:
wget: http://manga.favorito / зображення http://manga.favorito/imagen1
Я спробував наступний спосіб, але wget не отримав: http://manga.favorito/imagen{, 1..42} На мою думку, мені довелося б залишити перше ім’я без номера і продовжувати нумерацію від 1 до 42, але це було не так. Чому?
Ви маєте рацію, деякі дистрибутиви мають або мали .bin, але це так, щоб усі могли зрозуміти і побачити, що це можна зробити в будь-якому дистрибутиві: D, Дякую, що завітали.
Дуже добре, дуже добре для цих внесків знань у світ Linux та його безпеку, в якусь п'ятницю, сподіваюся, я міг прочитати, як відформатувати pendrive в терміналі та записати образ iso DVD / CD будь-якої вільної системи в терміналі.
Дякую за твої слова, брате 😀 Я обіцяю, що наступної п’ятниці я виконаю цю посаду. І я повинен сказати про налаштування Vim ха-ха-ха, але я не хотів, щоб вони думали, що це буде охоплювати лише Vim.
Відмінна стаття для терміналів, найкраща, яку я прочитав за довгий час, підраховуючи кілька блогів, які публікують підручники цього стилю. Дуже дякую!!
Щиро дякую 😀 Я намагатимусь не відставати.
Відмінна порада місцевого смітника!
Привіт!
Чудово, чудово, що це корисно для вас, велике спасибі за те, що ви пройшли брата 😀
Дуже добре! Поняття про це немає. Дякую 🙂
Ласкаво просимо, брате, дякую, що знайшов час прочитати 😀
У мене є деякі занепокоєння:
1. Як я можу змусити його дати мені два інтервали з розширенням по крапках; вік {1..24,55..90}, і що я збільшую вік з 1 до 24 і продовжую з 55 до дев'яноста. як я це зробив, це не спрацювало. Чому?
2. Якщо я хочу, щоб перше значення було нульовим, і продовжувати нумерацію:
wget: http://manga.favorito/imagen http://manga.favorito/imagen1
Я спробував наступний спосіб, але wget не отримав: http://manga.favorito/imagen{, 1..42} На мою думку, мені довелося б залишити перше ім’я без номера і продовжувати нумерацію від 1 до 42, але це було не так. Чому?
* Вибачте, але я поставив перший пост як відповідь, і в деяких частинах це було неправильно
1. - Ваша логіка помилкова, ви повинні її вкласти ха-ха-ха, спробуйте
$ echo {{1..24},{55..90}}
2. - Те саме, що і попереднє ...
$ echo "URL"{,{1..42}}
Не хвилюйся, брате, ми тут, щоб допомогти нам 🙂
Щоб замінити for на ехо, це буде виглядати так
луна "Мій номер" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
але я віддаю перевагу printf
printf "Я, Я% d \ n" {1..5}
і використовувати ту саму концепцію розширення ключів
Ув
jvk85321
Як ви ставите клемні коробки ????
Ув
jvk85321
Перевірка роботи кодового тегу
Хехе
Щоб замінити for на ехо, це буде виглядати так
echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’
pero prefiero printf
printf “Mi numero %d\n” {1..5}
і використовувати ту саму концепцію розширення ключів
Ув
jvk85321
У мене залишилися деякі помилки, але це спрацювало
Я живий maluco
Вибачте, що потурбував
Ув
jvk85321
Ха-ха-ха, ви відповіли самі, але це між ярликами
немає пробілів ...
І на заміну на не потрібно робити стільки труби ха-ха-ха-ха з:
echo -e "Mi numero "{1..5}"\n\b"
Чесно кажучи, printf - найкращий спосіб надрукувати текст у сценаріях, він є більш портативним, але за традицією використовує ехо.
Я беру пробіли! ха-ха-ха-ха
подивимось зараз 😀
Ебать, це "менше" коду "більше" "менше" / коду "більше" ха-ха-ха
Проблема в тому, що echo -e не є стандартною, тому вона працює не в усіх системах.
Також виходить безладним
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
І з цим
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Я думаю, що другий представляє результат краще, ха-ха-ха
Ув
jvk85321
Ці ярлики - облом, хе, подивимось, чи вдасться зараз
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
І з цим
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Я думаю, що другий представляє результат краще, ха-ха-ха
Ув
jvk85321
У будь-якому випадку, залишайте пробіли між рядками, ось чому я ненавиджу html, ха-ха-ха
Відмінно! Хлопаю по ногах ха-ха
Я не знав, що ключі можуть бути вкладеними, оскільки я ніколи не намагався їх використовувати, це дійсно економить багато коду, і це також легше читати таким чином. Дякую!
Дякую вам за передачу брата, я радий, що це було корисно utilidad
Ласкаво просимо, саме для цього ми тут, щоб ділитися і надавати ідеї. Я не знаю, як програмувати, я просто зробив кілька речей у Bash і опублікував у двох дописах кілька сценаріїв, які я зробив. Я думаю, що знання цього може полегшити розуміння коду.