motofan logo
26 страниц V « < 7 8 9 10 11 > »         
> 

Написание скриптов #!/bin/sh for UNIX, Кто поможет?

VINRARUS
сообщение 17.6.2011, 17:56 Закрепленное сообщение!


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



Ура! В теме появилася шапочка. watsup.gif
В даной теме помогаем друг другу в написании шелл скриптов, и дружно решаем проблемы связанные с ними smile.gif

Вот мои рукописные мануалы для совсем новичков:
Основы. Синтаксис, кавычки, переменные, условные операторы
Розширенная инфа о if

Подробный мануал с примерами по ВСЕМ функциям SH
Портативная версия еще одного мануала
Книги в формате Djvu

Примеры работы с текстом через sed и мануал PRO и мануал NUB
Примеры работы с текстом через awk и мануал
Обрезка текста внутри переменных - чорт ногу сломит =] О логике шаблонов.

Где быстро найти инфу?
Тут вводите в строчку поиска манов любую утилиту, например echo, и 95% вероятности что получите инфу по всем функциям и ключам
Вот инфа по НЕКОТОРЫМ утилитам, также можна пользоваться поиском

ПС

1. Не во всех UNIX\LINUX системах можно сразу в терминале вводить команды утилит.
Например в MOTOMAGX часто перед командой утилиты нужно вводить "busybox" (например busybox free) хотя это и решено на некоторых модах.
А в некоторых выкидышах типа Android они и вовсе отсутствуют как и сам busybox, но есть возможность добавить его самому.

2. Не всегда утилиты поддерживают то что написано в манах к ним, иногда функционал меняется от версии к версии.

3. Также нужно знать что код от bash иногда может не работать корректно на shell (sh), хотя и очень редко.
Это из за того что древним программистам делать было нечего, когда не было еще интернета, и они понапридумывали кучу модификаций.
Хорошо хоть код под чистый shell подойдет ко всем им, из за чего он считается эталоном. smile.gif
А не bash как считают юные линуксойды.
[close]


Сообщение отредактировал VINRARUS - 12.12.2020, 21:32
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 11.8.2011, 10:23


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



if GROB="`sed "/^$slovo/!d" $mypath/data2/bd`"
then
text="$GROB"

так поиск будет в 2 раза быстрее.
Ну а с ненужными строками нада бороться или указуя конкретнее фразы, либо ограничивая искомое слово с обох сторон.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 11.8.2011, 12:01


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



а не проще посимвольно искать? Геморойней конечно в разы, но тогда поиск будет успешен при однокоренных словах, или выдавать из базы похожие результаты когда поиск не выдал точно такое же слово из базы.
ну к примеру, если юзер введёт слово "пистолеты" то поиск будет неуспешен, хотя слово "пистолет" будет в бд. Где-то у меня в лекциях был поиск по символам, даже привёден алгоритм.
Цитата(VINRARUS @ Сегодня, 13:23)
* if GROB="`sed "/^$slovo/!d" $mypath/data2/bd`"

если не сложно, расскажите что эта строка означает smile.gif

Сообщение отредактировал IlluminatI - 11.8.2011, 12:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 11.8.2011, 12:53


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



IlluminatI,
Это значит если найдется содержимое переменной $slovo (указана выше) в bd по адресу...
Значит она положится в переменную GROB (Плачевная переменная какая-то) не находите)
И процесс пойдет дальше под then...

...в зависимости от того найдет ли sed шото, иначе пойдет процес под else...

Сообщение отредактировал VINRARUS - 11.8.2011, 13:26
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 11.8.2011, 19:02


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1335.5



User and Linux part1 и User and Linux part2 - статьи размещенные в журнале User and Linux, они дают возможность освоить основные возможности bash за полтора часа. Именно с них я и начинал своё учение.
Девид Тейнсли - LINUX и UNIX. Программирование в SHELL - очень понятно и поэтапно всё изложено. Все действия происходят используя интерпретатор sh, командного языка shell. Nо, что читаю в нынешнее время.
C. Скловская - команды Linux - справочник по командам Linux, незаменимая вещь, если надо вспомнить синтаксис и опции какой либо команды.
Д. ДЖ. Баррет - Linux. Основные команды. Карманный справочник - справочник по командам Linux, незаменимая вещь, если надо вспомнить синтаксис и опции какой либо команды.
Mendel Cooper - Advanced Bash-Scripting Guide - на русском, самое полное руководство по интерпретатору bash, командного языка shell.
Грэм Гласс, Кинг Эйблс - Unix для программистов и пользователей - в доступной и наглядной форме изложены все аспекты работы в ОС UNIX, включая обсуждение основных концепций ОС, основных утилит, различных оболочек, сетевой организации оконных систем, системного программирования, свойств и администрирования системы.



Грэм Гласс, Кинг Эйблс - Unix для программистов и пользователей
С. Скловская - команды Linux


Что бы открыть всё это через нативную программу Djvu Reader, переименуйте название книг в более короткие (латиница без пробелов), а затем открывайте)

Сообщение отредактировал igoripp - 12.8.2011, 12:52
Прикрепленный файл Mendel_Cooper_-_Advanced_Bash-Scripting_Guide.zip   ( 2.29 мегабайт ) Кол-во скачиваний: 161
Прикрепленный файл Д._ДЖ._Баррет_-_Linux._Основные_команды._Карманный_справочник.zip   ( 1.11 мегабайт ) Кол-во скачиваний: 134
Прикрепленный файл Девид_Тейнсли__-_LINUX_и_UNIX._Программирование_в_SHELL.zip   ( 4.29 мегабайт ) Кол-во скачиваний: 147
Прикрепленный файл User_and_Linux_part1.zip   ( 275.44 килобайт ) Кол-во скачиваний: 161
Прикрепленный файл User_and_Linux_part2.zip   ( 197.38 килобайт ) Кол-во скачиваний: 241
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 16.8.2011, 9:54


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



Код
#!/bin/sh
CFGPATH=${0%/*}/nastroyka.cfg
Z2="/mmc/mmca1/musor.mp3"
Z1="MP3"
if ZZ=`sed "s/^$Z1 = .*/$Z1 = $Z2/" $CFGPATH`
then
echo "$ZZ" > $CFGPATH
echo "OK"
else
echo "Ups..."
fi

Может кому пригодится, меняет параметр в нужном конфиге.

Сообщение отредактировал VINRARUS - 16.8.2011, 10:00
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 27.8.2011, 5:33


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Код

#!/bin/sh
CFGPATH=${0%/*}/1.cfg

Z2="4321" #not modify

Z1="prog" #new

Z11="fi" #old

if ZZ=`sed "s/^$Z11=$Z2/$Z1=$Z2/g" $CFGPATH` #comand modify
then
  echo "OK" #input
  echo "$ZZ" #input
else
  echo "Ups..." #input
fi


А у меня вот так норм заробило...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 30.8.2011, 13:19


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1335.5



Уважаемые, как заархивировать папку bd, лежащую рядом со скриптом? Файл - с легка получилось, а вот с папкой проблема... Мне не важно в какой именно архив будет, будь то *.zip, *.gz или подобные) Но важно, что б я смог скриптом этот же файл-архив распаковать!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 30.8.2011, 13:58


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Пакуем:

/usr/local/p7zip/7z (путь где архиватор валяется) a "$mypath/name"(собстно куда мы архив кинем и под каким именем) "/mmc/mmca1/BOX/" (папушка, которую решили пакернуть)

Распаковываем:

/usr/local/p7zip/7z(путь где архиватор валяется) x "$mypath/name.7z"(собстно куда мы архив кидали и под каким именем) -o"/mmc/mmca1/"(папушка, в которую решили извлекать)

Все, что в скобках можно похерить... Остальное - команды...

Сообщение отредактировал Programmer-tm(Мотофан.) - 30.8.2011, 14:00
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Diag
сообщение 30.8.2011, 18:13


Ветеран
*****

Группа: Пользователи
Сообщений: 315
Регистрация: 2.5.2008
Из: г. Краснодар
Пользователь №: 171 112
Модель телефона: Motorola ROKR™ EM 30
Прошивка: R6716_G_71.04.06R_C

Рейтинг: 164



Можно для распаковки busybox unzip использовать...
unzip /путь/к/архиву.zip -d /папка/куда/извлечется/содержимое.
Ну это так, на заметку.

Да, ребят, хотел спросить.
Допустим, что через find по расширению *.cfg я нашел один файл (например, /mmc/mmca1/config.cfg). Как мне отдельно выцепить имя файла и путь к папке, где этот самый файл расположен?

Сообщение отредактировал Diag - 30.8.2011, 18:17
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 30.8.2011, 18:17


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Diag,
То же вариант) Ну, выберет, что больше приглянется...

Просто я парольный архиватор мутил, вот и такие команды получились почти... ну ещё -p"password" был...

Сообщение отредактировал Programmer-tm(Мотофан.) - 30.8.2011, 18:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Написание скриптов #!/bin/sh for UNIX, Кто поможет? · Motorola на Linux OS · Forum
 

26 страниц V « < 7 8 9 10 11 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 25.4.2024, 4:03

Форум живёт: