Терминальная пятница: Баш [расширение ключа]

Прежде всего, я хотел бы извиниться, так как в прошлую пятницу я не смог написать пост, поэтому сегодня я добавлю дополнительный, чтобы восполнить потерянный день. 🙂

Расширение скобы

В испанском языке расширение клавиш кажется мне функцией, вдохновленной C-оболочка, это генерирует комбинации между символами, которые вводятся в фигурные скобки, в порядке слева направо. Это совсем не сложно, но это вариант, который будет очень полезен в наших турах по GNU / Linux.

пример:

$ echo a {1,2,3} a1 a2 a3

При использовании с запятыми (,) генерирует комбинации между значением a и значениями внутри фигурных скобок. Если бы вне ключей не было значения, оно показывало бы только один раз каждое значение, которое содержит ключ.

$ echo {a, b, c} abc

Его использование совсем несложно, есть и другие более распространенные примеры, такие как создание множества каталогов в папке.

$ mkdir ~ / Jobs / {один, два, три, четыре, пять}

Это создает пять папок в папке заданий, это как вводить одну команду за раз. Создание 5 каталогов.

Есть расширение на два пункта .. Это создает серию чисел или символов, которые переходят от начального значения к конечному значению, не используйте буквенные числа.

$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # Думаю, я никогда к этому не привыкну синий цвет в письме

Мы можем сэкономить время, создав цикл для

# Вместо того, чтобы писать $ for ((i = 1; i <= 5; i ++)); do echo "Мое число $ i"; done Мой номер 1 Мой номер 2 Мой номер 3 Мой номер 4 Мой номер 5 # Сохраните код, используя фигурные скобки. $ для i в {1..5}; do echo "Мой номер $ i; done Мой номер 1 Мой номер 2 Мой номер 3 Мой номер 4 Мой номер 5 # Конечно, его можно использовать, хотя вывод другой. $ echo" Мой номер "{1..5} Мой номер 1 Мой номер 2 Мой номер 3 Мой номер 4 Мой номер 5

Что ж, я думаю, что концепция ясна, хаха, сейчас я только прокомментирую, что она комбинируема и вложена. Что я имею в виду под этим?
С Combinable, к которому мы можем присоединить один или несколько ключей

$ 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

И наконец из Баш НИЧЕГО возможно увеличение значений.

$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20

На сегодня все, спасибо, что читаете меня people

Дополнительно

Как создать локальную корзину

Когда я говорю бункер local я имею в виду каталог, в котором у нас есть собственные скрипты, и их можно выполнить как простую команду ...

Достичь этого относительно просто, первое, что нужно сделать, - это создать каталог, в котором мы будем сохранять скрипты.

mkdir ~ / .bin # В этом примере он будет скрыт

Теперь у нас есть папка для сохранения скриптов, но она не будет работать, пока мы не добавим путь к новому .bin в $ PATH.
Для этого файл редактируется bash_profile, и строка добавлена.

экспорт PATH = $ PATH: ~ / .bin

И вуаля, этого достаточно, чтобы создать локальную корзину, конечно, она будет запрашивать права root, если это необходимо, например, мы напишем быстрый скрипт.

#! / bin / bash echo "Привет, $ 1, как дела?"

Сохраните его с именем привет
Скрипту дано разрешение на выполнение, и его достаточно будет только вызвать его с терминала.

$ hello wada # Появится сообщение Hello wada, как дела?

Таким образом, с помощью этого быстрого трюка вы можете быстрее запускать свои скрипты

На сегодня все, здоровые 🙂
PS Извините за ошибки, если есть, глаза уже закрываются хахаха 😀


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Данхантер сказал

    Я уже давно занимаюсь проблемой bash, и я не понял этих расширений скобок, спасибо.

    Что касается трюка с путями, Fedora по умолчанию делает что-то подобное, но в "~ / .local / bin" посмотрите фрагмент bash_profile, который я передал Джесси.

    ПУТЬ = $ ПУТЬ: $ HOME / .local / bin: $ HOME / bin
    экспорт ПУТЬ

    1.    Рикардо сказал

      У меня есть некоторые опасения:
      1. Как мне заставить его дать мне два интервала с расширением по очкам; возраст {1..24,55..90} и что я увеличиваю возраст с 1 до 24 и продолжаю с 55 до XNUMX. как я это сделал, не сработало. Почему?

      2. Если я хочу, чтобы первое значение было нулевым, и продолжаю нумерацию:
      получить: http://manga.favorito /образ http://manga.favorito/imagen1
      Я попробовал следующий способ, но wget не получил: http://manga.favorito/imagen{, 1..42} По моему мнению, мне пришлось бы оставить имя без номера и продолжить нумерацию от 1 до 42, но это было не так. Почему?

    2.    Вада сказал

      Вы правы, в некоторых дистрибутивах есть или был .bin, но это так, чтобы каждый мог понять и увидеть, что это можно сделать в любом дистрибутиве: D, Спасибо, что заглянули.

  2.   демонстрация сказал

    Очень хорошо очень хорошо для этого вклада знаний в мир Linux и его безопасность, в какую-то пятницу я надеюсь, что смогу прочитать, как отформатировать флешку в терминале и записать ISO-образ DVD / CD любой свободной системы в терминале.

    1.    Вада сказал

      Спасибо за слова, брат 😀 Обещаю, что в следующую пятницу сделаю этот пост. И я должен сказать о настройке Vim, хахаха, но я не хотел, чтобы они думали, что это будет охватывать только Vim.

  3.   Эдоардо_ор сказал

    Превосходная терминальная статья, лучшая, которую я прочитал за долгое время, считая несколько блогов, публикующих уроки в этом стиле. Большое спасибо!!

    1.    Вада сказал

      Спасибо большое 😀 Постараюсь не отставать.

  4.   цзюаньли сказал

    Отличный совет местного мусорного ведра!
    Привет!

    1.    Вада сказал

      Отлично, здорово, что он вам пригодился, большое спасибо за проходящего брата 😀

  5.   Жискар сказал

    Очень хорошо! Понятия не имею об этом. Спасибо 🙂

    1.    Вада сказал

      Добро пожаловать, брат, спасибо, что нашел время, чтобы его прочитать 😀

  6.   Рикардо сказал

    У меня есть некоторые опасения:
    1. Как мне заставить его дать мне два интервала с расширением по очкам; возраст {1..24,55..90} и что я увеличиваю возраст с 1 до 24 и продолжаю с 55 до XNUMX. как я это сделал, не сработало. Почему?

    2. Если я хочу, чтобы первое значение было нулевым, и продолжаю нумерацию:
    получить: 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 на echo, это будет выглядеть так

    echo "Мой номер" {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, это будет выглядеть так

    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 сказал

      У меня остались некоторые ошибки, но это сработало

      Я жив, малуко

      Извините за беспокойство

      Ув
      jvk85321

      1.    Вада сказал

        Хахаха, вы сами ответили, но если это между ярлыками без пробелов ...

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

        Честно говоря, printf - лучший способ печатать текст в скриптах, он более переносимый, но традиционно использует эхо.

      2.    Вада сказал

        Я беру пробелы! хахахахаха

        давай посмотрим сейчас 😀

      3.    Вада сказал

        Черт, это "меньше" кода "больше" "меньше" / code "больше, чем" хахахаха

      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 и опубликовал несколько скриптов, которые я сделал, в двух сообщениях. Я думаю, что знание этого может облегчить понимание кода.