Л
Линукс и DevOps Дни
@linuxskillselevation_devops7.2K подп.
1.6Kпросмотров
21.8%от подписчиков
13 декабря 2024 г.
Score: 1.7K
Набрёл сегодня на мануал по установке ack, а там такое: curl https://beyondgrep.com/ack-2.28-single-file > ~/bin/ack && chmod 0755 !#:3 ack — инструмент для поиска текста в файлах, который часто используется разработчиками как более удобная и современная альтернатива grep. Он написан на Perl и ориентирован на работу с кодом. В строке, в конце есть непонятности: !#:3 ㅤ Опять какая-то магия, а магию мы с тобой любим. Давай разберемся. В данном случае !#:3 — это конструкция, связанная с историей команд в оболочке Bash/Zsh. ! = Используется для доступа к истории команд. Например, !! повторит последнюю команду, а !123 выполнит команду с номером 123 в истории. # = Ссылается на текущую команду, которая в данный момент пишется. Вместо доступа к уже выполненной команде из истории, мы ссылаемся на текст текущей строки. :3 = Указывает, что нужно взять третий аргумент в текущей строке. Соответственно: :1 — первый аргумент :2 — второй аргумент :3 — третий аргумент Как это работает? Сначала выполняется команда curl, которая скачает файл ack-2.28-single-file и сохранит его в ~/bin/ack. После этого, команда chmod изменяет права доступа для файла. А !#:3 подставляет третий аргумент текущей команды, то есть ~/bin/ack. И по итогу команда превращается в chmod 0755 ~/bin/ack curl http://beyondgrep.com/ack-2.28-single-file > ~/bin/ack && chmod 0755 ~/bin/ack Вот и вся магия. Упорото? Аще! А зачем это нужно? - удобно для автоматизации и избежания дублирования ввода - снижает вероятность ошибок, если накосячил в путях Короче эта хреновина делает команду более динамичной и минимизирует рукоблудие. Штука прикольная, как говорится — век живи, век учись. 🔥 Ну и с пятницей друзья! Еще пару недель и каникулы. tags: #bash — 🔔 ➡️
1.6K
просмотров
1757
символов
Нет
эмодзи
Нет
медиа

Другие посты @linuxskillselevation_devops

Все посты канала →