LINUX.ORG.RU

Ракетный менеджер для установки рандомных пакетов в хомяк, например

Deleted
()

Чтобы попрактиковаться для чего? Цель итоговая какая? И почему именно баш, а не даш/аш/зсш и т. п.

anonymous
()
Ответ на: комментарий от anonymous

Потому что баш — стандарт для линукса. Логично изучить в начале его.

anti_win ★★
() автор топика

Сделай неограниченный стек вложенных (в том числе по ssh) tmux сессий и интерфейс для переключения между ними.

pon4ik ★★★★★
()

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

nebularia ★★★
()
Ответ на: комментарий от nebularia

баш отлично подходит для этого

Даже близко нет.

anonymous
()

На баше лучше не писать ничего, если уж совсем жизнь не прижала.

Попрактикуйся лучше на каком-нибудь нормальном яп, принципы всё равно одни и те же. А пример хорошей задачи nebularia описал

oxo
()
Последнее исправление: oxo (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ракетный менеджер для установки рандомных пакетов в хомяк, например

Уже есть, и даже не на Bash, а на POSIX Shell. Думаю, не только я страдал такой фигнёй.

mord0d ★★★★★
()

Рекомендую попрактиковаться на автоматизации.

mord0d ★★★★★
()
Ответ на: комментарий от anti_win

Тогда не варик…

Сделай скриптик, который добавляет пользователя-(лей), запрашивая имя, пароль, группы членства, пароль (должен быть не plainx-text) :)

garik_keghen ★★★★★
()
Ответ на: комментарий от mord0d

А что плохого, собственно. Качаем wgetом страницу, парсим с помощью grepa и скачиваем все найденные файлы в указанную юзверем директорию.

anti_win ★★
() автор топика

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

Ну или напиши на баше интерпретатор баша.

anonymous
()
Ответ на: комментарий от anti_win

Ну, wget сам умеет в рекурсию.

Grep — так себе решение для HTML. Я использовал xmllint, он умеет парсить HTML семантически. Очень хорошая справка по xpath есть в MSDN.

У меня получилось что-то подобное (сайт уже был выкачан, на выходе получался CSV). Зачем я sed’ом вырезал id, уже не помню и вряд ли вспомню.

#!/bin/bash
# Парсинг информации о книгах, запускаем так:
# find /path/to/folder/with/files -type f -name default.htm -exec parse "{}" \; 

filename="$1"
OUTPUT="$HOME/output_books.txt"

function GetField {

        xpath="$1"

        sed 's/id=".*"//g' "$filename" | \
        xmllint --html --nonet --xpath "${xpath}" - | \
        sed 's/\r/\n/g;s/"/\\"/g' | unhtml 1>>"$OUTPUT"
}

# Название книги
GetField '//h1[@class="m-elementprimary-title"]'
echo -n ';"' >>"$OUTPUT"

# Описание
GetField '//div[@class="m-elementdescription-description"]/p[@class="summary"]'
echo -n '";' >>"$OUTPUT"

# Автор
GetField '//div[@class="m-elementdescription-info"]/div/p/a[@class="underline m-value"]/span'
echo -n ';' >>"$OUTPUT"

# Год
GetField '//div[@class="m-elementdescription-info"]/div/p/span[@class="m-value"]'
echo -n ';' >>"$OUTPUT"

# Жанр
GetField '//div[@class="m-elementdescription-info"]/div/p/span/span[@class="m-value"]'
echo '' >>"$OUTPUT"

echo ready "$filename"
exit 0

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

Bagrov ★★★★★
()

Нет смысла писать что-то без цели. Если ты думаешь что если что-то однажды написать на баше, ты будешь его знать, у меня для тебя плохая новость. Если не писать постоянно ты всё забудешь.

Demige
()
Ответ на: комментарий от Demige

Это и ежу понятно. Мне просто интересно еще что0нибудь написать.

anti_win ★★
() автор топика
Ответ на: комментарий от oxo

На баше лучше не писать ничего, если уж совсем жизнь не прижала.

+1
Если скрипт должен оказаться портируемым, то bash тут не подходит, писать придётся на sh
А если нужно просто написать скрипт всё равно на чём, то любой традиционный скриптовый ЯП будет заметно лучше баша.

Egor_
()
Последнее исправление: Egor_ (всего исправлений: 2)
Ответ на: комментарий от Egor_

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

anti_win ★★
() автор топика
Ответ на: комментарий от mord0d

Прелесть баша в том, что он является сценарием оболочки, а как интегрировать системные функции в питон или перл?

anti_win ★★
() автор топика
Ответ на: комментарий от anti_win

Ничего не знаю, у меня нет bash, я никогда не писал на bash.

как интегрировать системные функции в питон или перл?

Я не занимаюсь обучением. По крайней мере бесплатно. Да и не за этим сей тред.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Ты вроде на бзде сидишь? Если да, тогда понятно, почему у тебя нет баша. В лине баш по-умолчанию.

anti_win ★★
() автор топика

Напиши скрипт в тему неподалеку, там один студент очень просил.

cherry_boy
()

Интерпретатор Python’а, чтобы писать скрипты на нормальном языке программирования.

EXL ★★★★★
()
Ответ на: комментарий от anti_win

Какой смысл учить Bash, если в будущем ты поймёшь, что Bash-лапша это самое отвратное, что есть в Linux и UNIX системах.

Тебе правильно говорят – потрать своё время с пользой и изучи что-то полезное.

EXL ★★★★★
()
Ответ на: комментарий от Bagrov

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

На Python (с помощью Beautiful Soup) ты бы сделал эту задачу куда быстрее и оптимизирование.

EXL ★★★★★
()

Ну напиши что-то вроде какого-нибудь терминального эффекта, градиент какой-нибудь, начни с линейного – два цвета по горизонтали, по вертикали и по диагонали в зависимости от параметров скрипта.

anonymous
()
Ответ на: комментарий от anonymous

Ну напиши что-то вроде какого-нибудь терминального эффекта, градиент какой-нибудь

скучно же
пусть лучше арканоид или тетрис в терминале напишет

Egor_
()

На баше надо писать что-то, что работает с файлами или программами (а не парсилку сайтиков, тфу).

Начни со скрипта бекапа. Потом напиши скрипт проверки бекапа.

Ещё можно какой-нибудь автоматический конвертер (не сам конвертер, а обёртку, разумеется). Например, у меня есть игра, которая делает скриншоты в png, так скрипт их в жпг перегоняет, тут есть много подходов как это сделать.

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

legolegs ★★★★★
()

Перепиши на электрон, назови eBash. Школьник-кун добавит в свой ButtHurd.

anonymous
()
Ответ на: комментарий от Egor_

арканоид

Каждый блок чтобы был подписан именем какого-нибудь файла. Уничтожил == уничтожил.

anonymous
()
Ответ на: комментарий от mord0d

Надевать трусы через голову, да.

Свои, чужие? Себе, другим?

anonymous
()
Ответ на: комментарий от pinus_nigra

Для тех кто парсит html регекспами есть отдельный котёл в аду.

За что? Чем тебе то плохо из-за того что я сегодня выкачал дискографию некоторой группы одноразовым скриптом, использующим регулярки?

Понятно почему регулярки не подходят для парсинга html в целом, но некоторые задачи по выдиранию кусков из html-докуметов вполне себе допускаются.

Tanger ★★★★★
()
Ответ на: комментарий от Tanger

За что?

Ну потому что на Stack Overflow есть очень смешной пост на тему. А так вообще да, херулярки это вообще отличное ad-hoc решение почти на все случаи жизни.

anonymous
()
Ответ на: комментарий от anonymous

Блин. Не имею привычки коверкать слова, это случайно. Регулярки.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.