Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [HOWTO] Пишем bash скрипты  (Прочитано 148429 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн RaY

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #30 : 29 Март 2009, 19:23:52 »
кто знает как сделать полосу прогресса, если например в скрипте идет копирование или бекап
по типу
[====>                        ]
Laptop Acer Aspire 5520G-6A1G16Mi /AMD Turion™ 64 X2 Mobile TK-55
GeForce 8400M G / Mem 2 GB / Hitachi HTS542516K9SA00 (SATA)
Wi-Fi (802.11а/b/g)Atheros AR5007EG / BT /Card Reader

burgua

  • Автор темы
  • Гость
Re: HOWTO: Пишем bash скрипты
« Ответ #31 : 29 Март 2009, 23:05:13 »
Простенький туториал (но мне хватало) >> http://www.linuxconfig.org/Bash_scripting_Tutorial

Для отладки  регэкспов подойдет >> http://www.rubular.com

Оффлайн pe1ro

  • Участник
  • *
  • Сообщений: 123
  • xubuntu 9.10
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #32 : 31 Март 2009, 15:17:57 »
Advanced Bash-Scripting Guide в переводе Андрея Киселева

А кто-нибудь может подсказать, как сделать так, что бы щёлкая по скрипту он запускался в консоле?

Оффлайн Black SiriuS

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #33 : 11 Апрель 2009, 12:45:10 »
здравствуйте, помогите, я новичок в написание скриптов bash, хочу  дописать скрипт для скачивания репозитариев
есть файл, в котором хранятся ссылки на репозиратии
типа:
http://ppa.launchpad.net/lidaobing/ubuntu intrepid,jaunty main,restricted,multiverse,universe lidaobing
http://ppa.launchpad.net/do-core/ubuntu intrepid,jaunty main,restricted,multiverse,universe do-core
http://wine.budgetdedicated.com/apt intrepid,jaunty main wine
http://apt.mucommander.com/ stable main,non-free,contrib mucommander
ftp://ftp.gajim.org/debian unstable,stable main gajim
нужно разбить ссылки на переменные, для подстановки в команду закачки

условия файла с моей точки зрения такие
<протокол>://<адрес_сервера>/<внутриние_деректории> <дистрибутивы> <секция> <директория_назначения>я смотрю что скрипт проверки файла должен работать так
(Нажмите, чтобы показать/скрыть)
или помогите, направив меня на ртфм по обработки строк в скриптах bash

Пользователь решил продолжить мысль 11 Апрель 2009, 12:46:45:
просто сейчас написал скрипт
(Нажмите, чтобы показать/скрыть)
но он просто неудобный в добавлении новый репозитариев
« Последнее редактирование: 11 Апрель 2009, 12:46:45 от Black SiriuS »
Просто так нечего не бывает, нам тока неизвестны мотивы действий

Оффлайн Bloody Mary man

  • Любитель
  • *
  • Сообщений: 81
  • just another psycho
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #34 : 04 Июль 2009, 12:54:23 »
Энибади, плиз, хелп!

[SOLVED]Пытаюсь сделать скрипт, который бы рисовал на десктопе альбомную графику.

Как сделать эту заразу рекурсивной (в терминах "лого", т. е. самовозобновляющейся)?

И как бороться с тем, что

bloody@crunchie:~/.covers$  feh Reverend Horton Heat-Lucky 7.jpg показывает картинку, а

bloody@crunchie:~/.covers$ feh $(dir ~/.covers/cov | grep $(sonata info | grep Artist | awk {'print $2'}| sed "s/Artist://") | grep $(sonata info | grep Album | awk {'print $2'}| sed "s/Album://")) (и не только feh) выдаёт
feh WARNING: Cheese, does not exist - skipping
feh WARNING: Richard-Dick does not exist - skipping
feh WARNING: At does not exist - skipping
feh WARNING: Nite.jpg does not exist - skipping
feh - No loadable images specified.
Use feh --help for detailed usage information

При том, что
bloody@crunchie:~/.covers$ echo $(dir ~/.covers | grep $(sonata info | grep Artist | awk {'print $2'}| sed "s/Artist://") | grep $(sonata info | grep Album | awk {'print $2'}| sed "s/Album://"))
выдаёт, например,
Mando Diao -Ode To Ochrasy.jpg
т. е. точно такое же имя файла со слэшами и пробелами, какое в первом примере прекрасно работало?[/SOLVED]

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

#!/bin/bash
while :
do
скрипт
done


Пользователь решил продолжить мысль 04 Июль 2009, 09:18:12:
А кто-нибудь может подсказать, как сделать так, что бы щёлкая по скрипту он запускался в консоле?

А чего нет-то? )) Для наутилуса - создаём действие gnome-terminal -x %f (кажется, %f, впрочем, там есть подсказки) и делаем его применимым для .sh файлов.
« Последнее редактирование: 04 Июль 2009, 14:17:10 от Bloody Mary man »

Оффлайн slech

  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #35 : 23 Июль 2009, 21:07:54 »
помогите пожалуйста организовать цикл  :-\

в виндовс

Цитировать
:start
command
goto start

как такую же историю организовать в Ubuntu ?

Циклы for, while и until

while так и не заработал.

спасибо

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1686
  • ちのう の きょうかん
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #36 : 23 Июль 2009, 21:12:42 »
while true
  do
    commands
  done
Простой бесконечный цикл. :)
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн ubuntu lamer

  • Активист
  • *
  • Сообщений: 612
  • BY
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #37 : 24 Июль 2009, 00:29:05 »
А как сделать вывод одновременно и в консоль и в файл (с сохранением форматирования)? Честно, гуглил :)
It began in Afrika

Chapeau

  • Автор темы
  • Гость
Re: HOWTO: Пишем bash скрипты
« Ответ #38 : 24 Июль 2009, 07:57:10 »
А как сделать вывод одновременно и в консоль и в файл (с сохранением форматирования)? Честно, гуглил :)
tee. Только я не понял, что значит «с сохранением форматирования».

Оффлайн ubuntu lamer

  • Активист
  • *
  • Сообщений: 612
  • BY
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #39 : 24 Июль 2009, 16:28:19 »
Нет, форматирование не актуально уже. Просто делал вывод в переменную, потом в консоль через echo. Ну и ясно, форматирование пропало: абзацы, отступы и т.д.
Спасибо :)

It began in Afrika

Оффлайн _92

  • Любитель
  • *
  • Сообщений: 83
  • puppyrus.org
    • Просмотр профиля
    • 10021987.ru
Re: HOWTO: Пишем bash скрипты
« Ответ #40 : 28 Сентябрь 2009, 19:43:53 »
alt+f2
gnome-terminal
cd
mkdir sh
cd sh
touch script_name.sh
chmod +x script_name.sh
nano script_name.sh
(копируем скрипт ниже и вставляем в nano)
shift+ins
ctrl+o enter ctrl+x
./script_name.sh

быстрое создание образа компакт-диска (dd_iso.sh)
образ создается в домашней директории
имя образа ггммдд_ччммсс.iso


#!/bin/bash
echo "********** iso-creation ********** start **********"
disk_name=$(date +%y%m%d_%H%M%S)
dd if=/dev/cdrom of=~/iso/$disk_name.iso
echo "********** iso-creation ********** finish **********"
« Последнее редактирование: 28 Сентябрь 2009, 19:52:40 от _92 »
g4600 + ssd + ddr4

Оффлайн pe1ro

  • Участник
  • *
  • Сообщений: 123
  • xubuntu 9.10
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #41 : 06 Ноябрь 2009, 22:39:44 »
Просьба помочь. Пытаюсь понять, как можно найти текстовый файл с нужным содержимым.
Необходима команда, которая бы выводила имя и адрес файла с которым на данный момент происходит работа.
Тогда поиск был бы таким
Цитировать
find ~/ -type f -exec ~/temp/find.sh {} \;
где find.sh имеет такое содержание
Цитировать
if cat|grep НЕОБХОДИМЫЙ ТЕКСТ #grep возвращает 0, если строчка найдена
then #тут должна быть команда, которая выводит имя файла с которым идёт работа
fi
exit

Оффлайн tinman321

  • Активист
  • *
  • Сообщений: 573
    • Просмотр профиля
    • Мир Линуксоида
Re: HOWTO: Пишем bash скрипты
« Ответ #42 : 07 Ноябрь 2009, 23:06:21 »
где происходит работа, что-то я ничего не понял

Оффлайн pe1ro

  • Участник
  • *
  • Сообщений: 123
  • xubuntu 9.10
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #43 : 07 Ноябрь 2009, 23:28:10 »
при выполнении команды find ключ -exec заставляет запускать описанный скрипт поочерёдно для каждого найденного файла удовлетворяющего условиям (в данном случае условие - файл является именно файлом, а не папкой).
Описанный скрипт проверяет наличие поисковой фразы в тексте (cat|grep текст). Если файл не содержит нужный текст то скрипт завершается и передаёт работу команде find (и т.д., пока find таким образом не переберёт все файлы в директории и поддиректорях). Если файл содержит нужный текст, то на вывод должно подаваться название и адрес файла.

udp естественно, всё оказалось гораздо проще. Polkan, спасибо! grep -lr <искомая фраза> ~/*
« Последнее редактирование: 10 Ноябрь 2009, 07:27:49 от pe1ro »

Оффлайн Polkan

  • Участник
  • *
  • Сообщений: 124
    • Просмотр профиля
Re: HOWTO: Пишем bash скрипты
« Ответ #44 : 07 Ноябрь 2009, 23:28:20 »
Просьба помочь. Пытаюсь понять, как можно найти текстовый файл с нужным содержимым...
Вообще все гораздо проще: grep -lr <искомая фраза> ~/*
Либо формулируй понятней вопрос. :-)

 

Страница сгенерирована за 0.129 секунд. Запросов: 23.