Термінал п’ятниця: Баш [Розширення ключа]

Перш за все, я хотів би вибачитися, оскільки минулої п’ятниці я не міг написати пост, тому сьогодні я додаю додаткову інформацію, щоб компенсувати втрачений день. 🙂

Розширення брекетів

Іспанською мовою розширення ключів мені здається функцією, натхненною 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 Вибачте за помилки, якщо вони є, у мене очі вже закриваються ха-ха-ха 😀


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   dhunter - сказав він

    Я довгий час працював у випуску bash, і я не розумів розширення фігурних дужок, дякую.

    Щодо фокусу на шляху, Fedora за замовчуванням робить щось подібне, але в "~ / .local / bin" див. Фрагмент із файлу bash_profile, який я приніс Джессі.

    PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
    експортний ШЛЯХ

    1.    Рікардо - сказав він

      У мене є деякі занепокоєння:
      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, але це було не так. Чому?

    2.    Вада - сказав він

      Ви маєте рацію, деякі дистрибутиви мають або мали .bin, але це так, щоб усі могли зрозуміти і побачити, що це можна зробити в будь-якому дистрибутиві: D, Дякую, що завітали.

  2.   демонстрація - сказав він

    Дуже добре, дуже добре для цих внесків знань у світ Linux та його безпеку, в якусь п'ятницю, сподіваюся, я міг прочитати, як відформатувати pendrive в терміналі та записати образ iso DVD / CD будь-якої вільної системи в терміналі.

    1.    Вада - сказав він

      Дякую за твої слова, брате 😀 Я обіцяю, що наступної п’ятниці я виконаю цю посаду. І я повинен сказати про налаштування Vim ха-ха-ха, але я не хотів, щоб вони думали, що це буде охоплювати лише Vim.

  3.   edoardo_or - сказав він

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

    1.    Вада - сказав він

      Щиро дякую 😀 Я намагатимусь не відставати.

  4.   джуанлі - сказав він

    Відмінна порада місцевого смітника!
    Привіт!

    1.    Вада - сказав він

      Чудово, чудово, що це корисно для вас, велике спасибі за те, що ви пройшли брата 😀

  5.   Гіскард - сказав він

    Дуже добре! Поняття про це немає. Дякую 🙂

    1.    Вада - сказав він

      Ласкаво просимо, брате, дякую, що знайшов час прочитати 😀

  6.   Рікардо - сказав він

    У мене є деякі занепокоєння:
    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.    Вада - сказав він

      1. - Ваша логіка помилкова, ви повинні її вкласти ха-ха-ха, спробуйте $ echo {{1..24},{55..90}}

      2. - Те саме, що і попереднє ... $ echo "URL"{,{1..42}}

      Не хвилюйся, брате, ми тут, щоб допомогти нам 🙂

  7.   jvk85321 - сказав він

    Щоб замінити 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

    1.    jvk85321 - сказав він

      Як ви ставите клемні коробки ????

      Ув
      jvk85321

  8.   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

    1.    jvk85321 - сказав він

      У мене залишилися деякі помилки, але це спрацювало

      Я живий maluco

      Вибачте, що потурбував

      Ув
      jvk85321

      1.    Вада - сказав він

        Ха-ха-ха, ви відповіли самі, але це між ярликами немає пробілів ...

        І на заміну на не потрібно робити стільки труби ха-ха-ха-ха з:
        echo -e "Mi numero "{1..5}"\n\b"

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

      2.    Вада - сказав він

        Я беру пробіли! ха-ха-ха-ха

        подивимось зараз 😀

      3.    Вада - сказав він

        Ебать, це "менше" коду "більше" "менше" / коду "більше" ха-ха-ха

      4.    jvk85321 - сказав він

        Проблема в тому, що 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

      5.    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

      6.    jvk85321 - сказав він

        У будь-якому випадку, залишайте пробіли між рядками, ось чому я ненавиджу html, ха-ха-ха

  9.   Хоакін - сказав він

    Відмінно! Хлопаю по ногах ха-ха

    Я не знав, що ключі можуть бути вкладеними, оскільки я ніколи не намагався їх використовувати, це дійсно економить багато коду, і це також легше читати таким чином. Дякую!

    1.    Вада - сказав він

      Дякую вам за передачу брата, я радий, що це було корисно utilidad

      1.    Хоакін - сказав він

        Ласкаво просимо, саме для цього ми тут, щоб ділитися і надавати ідеї. Я не знаю, як програмувати, я просто зробив кілька речей у Bash і опублікував у двох дописах кілька сценаріїв, які я зробив. Я думаю, що знання цього може полегшити розуміння коду.