TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #530 10.9K
Здрасти, здрасти, давно не виделись. Сегодня… Аааа по ходу дела разберемся, погнали!

Есть у меня текстовый файл, вида:

bashdays.ru/1
bashdays.ru/2
bashdays.ru/3
bashdays.ru/4
bashdays.ru/5


И есть условный bash скрипт, который должен прочитать этот файл и присвоить значения переменным, чтобы получилось так:

$1 = bashdays.ru/1
$2 = bashdays.ru/2
$3 = bashdays.ru/3
$4 = bashdays.ru/4
$5 = bashdays.ru/5


Сначала прикидываем в голове алгоритм — читаем файл построчно, цикл вся хуйня, делаем что-то на подобии массива и дальше по накатанной. Это всё понятно, классика.

Но решим мы её как обычно через жопу:

#!/bin/bash

n=$(<bashdays.txt)
set -- $n

echo $1 # bashdays.ru/1
echo $2 # bashdays.ru/2
echo $3 # bashdays.ru/3
...
echo $@ # bashdays.ru/2 bashdays.ru/3 ...


Охуенно? ДА! Теперь давай разберем чо происходит.

В переменную «n» зачитываем рэпчанский текстовый файл bashdays.txt с нашим списком урлов.

Как сказал Паук — Рэп это кал!

Это так, к слову, если любишь рэп — ничо против не имею.

Конструкция $( < ) аналогична команде «cat», выполняет замену с подстановкой == $(cat bashdays.txt).

По итогу переменная «n» содержит в себе весь текст из файла bashdays.txt

Ну а магическая поебень set -- $n устанавливает позиционные параметры на основе содержимого переменной «n». То есть решает нашу задачу.

Символ «--» перед set = сброс всех предыдущих позиционных параметров и установка новых.

Можно конечно сделать проще, но проще это не для нас:

cat bashdays.txt | xargs ./script.sh


Тут содержимое файла bashdays.txt передается в скрипт и скрипт получает эти параметры в качестве аргументов.

#!/bin/bash

echo $1
echo $2
echo $3
echo $@


Итого получаем аналогичную картинку:

bashdays.ru/1
bashdays.ru/2
bashdays.ru/1 bashdays.ru/2 ...


Такие вот дела, накидывайте в комменты еще варианты упоротых решений, простые не интересны.

tags: #bash
—
🔔 @bashdays
More from @bashdays
  1. Sep 29, 2026Самый жаркий холивар в команде — это не systemd, а какие заказать роллы на всю команду. Од…
  2. Sep 24, 2026Post #1565
  3. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  4. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  5. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
  6. Sep 11, 2026🤖 DevOps в эпоху AI трансформации: что работает уже сейчас! 17 сентября Сбер собирает Dev…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →