motofan logo
7 страниц V « < 3 4 5 6 > »         
> 

Написание скриптов #!/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
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 21.9.2011, 14:01


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



pmtool нет на е2... Но дескинфо при включении подсвески сразу делает обновление. Т.е. нафиг рассчёт времени главное сопоставить значение tod ко времени.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 21.9.2011, 14:05


Куратор темы

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

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

Рейтинг: 1211



DDA-E398,
а, ну тогда будет работать smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 21.9.2011, 16:06


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



Ток до меня не доходит как сопоставить tod и время...

Добавлено позже (21.9.2011, 21:49):


Кто-нить поможет?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 22.9.2011, 8:45


Куратор темы

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

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

Рейтинг: 1211



Цитата(DDA-E398 @ Вчера, 19:06)
* Ток до меня не доходит как сопоставить tod и время...

А до меня недоходит что такое "tod" pardon.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 22.9.2011, 10:59


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



Всё сделал! Ща мучаюсь с автообновлением и запуском при включении...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Goin13
сообщение 24.9.2011, 17:09


Опытный
***

Группа: Пользователи
Сообщений: 129
Регистрация: 22.11.2009
Из: Червоноград
Пользователь №: 210 124
Модель телефона: Em30, a1200

Рейтинг: 21.5



Цитата
А до меня недоходит что такое "tod"

Тоже...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 24.9.2011, 22:33


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



tod - это имя переменной в xml скачанного с гизметео
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 25.9.2011, 10:51


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



Код



#!/bin/bash

export QTDIR=/usr/lib/ezx
myfile=`basename $0`
mypath=`echo $0 | sed -e 's/'$myfile'//g'`
lang=`cat /ezx_user/download/appwrite/setup/ezx_system.cfg | grep '^LanguageType' | sed -e 's/LanguageType\ =\ //g'`
if [ -f ${mypath}lang/sd.$lang.lang ]; then
    . ${mypath}lang/sd.$lang.lang
else
    . ${mypath}lang/sd.en-us.lang
fi


umount /mmc/mmca1 > /dev/null 2>&1

if [ -d /ezxlocal/download/mystuff/MySysPartition ]
then
    umount /ezxlocal/download/mystuff/MySysPartition > /dev/null 2>&1
    umount /mmca/mmca6 > /dev/null 2>&1
fi

swapoff /dev/mmca5 > /dev/null 2>&1

split_mmca1=`showTextEntry 0 "/dev/mmca1: (MB) FAT16"`
if [ "$split_mmca1" = "" ]
then
    exit 0
fi

split_mmca5=`showTextEntry 0 "/dev/mmca5: (MB) SWAP"`
if [ "$split_mmca5" = "" ]
then
    exit 0
fi

showNotify "" "$re8"

if [ "$lang" = "ru" ]; then
re7="/dev/mmca1=${split_mmca1}M - FAT16
/dev/mmca5=${split_mmca5}M - SWAP
/dev/mmca6=свободное место - EXT3
применить настройки?
(Это займёт пару минут, и удалит всё на вашей карте памяти)"
else
re7="/dev/mmca1=${split_mmca1}M - FAT16
/dev/mmca5=${split_mmca5}M - SWAP
/dev/mmca6=free space left - EXT3
Aplly the settings ?
(It will take minutes, and all things on the SD card will be lost)"
fi


if [ $split_mmca1 -ge 1 ] && [ $split_mmca5 -ge 1 ]; then

showQ "$re1" "$re7" 1 ||
        {
echo "d
1
d
2
n
p
1

+${split_mmca1}M
t
6
n
e
2


n
l

+${split_mmca5}M
t
5
82
n
l


t
6
83
w" | fdisk /dev/mmca

        /.backup/mkdosfs /dev/mmca1
        /bin/busybox mkswap /dev/mmca5
        /bin/mkfs.ext3 /dev/mmca6
        showQ -t "Rebooting" -c "$re3" -p 3 &
        reboot -d -f -i
        }
else
        showNotify "" ""\!\!\! 1
fi
exit 0




Данный скрипт разбивает карту памяти на три раздела: FAT16, SWAP и Ext3
Перед этим он запрашивает размеры разделов. У меня флэшка 4Gb но боелее 3500 байт раздел FAT16 создать не получается...
Необходимо сделать так чтобы форматирование проходило автоматически, т.е. Чтобы раздел Swap, был всегда 64МB, Ext3 - 128MB, а размер первого раздела рассчитывался и форматировался в FAT32 и затем менялся его ID на ID FAT16

ID поменять что-то вроде этого:
Код

fdisk /dev/mmca1
t
3
83
w
mkfs -f -t vfat32 /dev/mmca1


Я так думаю?

Сообщение отредактировал DDA-E398 - 25.9.2011, 11:00
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.9.2011, 11:22


Куратор темы

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

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

Рейтинг: 1211



dda-e398,
Смотри эту штуку, там все сделано. smile.gif
Прикрепленный файл zPartitionMMC.zip   ( 9.73 килобайт ) Кол-во скачиваний: 72
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 25.9.2011, 12:11


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



Ну вот что я написал по поводу вычисления размеров разделов

spilit_mmc=`fdisk -l /dev/mmca | grep Disk | awk '{print$3}'`
split_mmca5="64"
split_mmca6="128"

let split_mmca1=$spilit_mmc-$spilit_mmc5
let split_mmca1=$spilit_mmca1-$spilit_mmc6

так правильно? я так просто быстрее разберусь что к чему
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.9.2011, 12:59


Куратор темы

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

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

Рейтинг: 1211



Цитата(DDA-E398 @ Сегодня, 15:11)
* так правильно?

Не совсем, переменные не должны быть с знаками синтаксиса
Код

smmc1=`fdisk -l /dev/mmca | grep Disk | awk '{print$3}'`
smmc2="64"
smmc3="128"

let smmc0=$smmc1-$smmc2-$smmc3


Сообщение отредактировал VINRARUS - 25.9.2011, 13:12
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 25.9.2011, 15:56


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



Далее разбиваю и форматирую флэху
Код

if [ $smmca1 -ge 1 ] && [ $smmca5 -ge 1 ]; then

showQ "$re1" "$re7" 1 ||
        {
echo "d
1
d
2
n
p
1

+${smmca1}M
t
6              <--------------- ID раздела который в FAT16
n
e
2


n
l

+${smmca5}M
t
5
82
n
l


t
6
83
w" | fdisk /dev/mmca

        /.backup/mkdosfs /dev/mmca1          <------------- Форматирует в FAT16
        /bin/busybox mkswap /dev/mmca5
        /bin/mkfs.ext3 /dev/mmca6        

        showQ -t "Rebooting" -c "$re3" -p 3 &
        reboot -d -f -i
        }
else
        showNotify "" ""\!\!\! 1
fi



Указанные строчки для того чтоб форматировалось в FAT32 необходимо заменить на
Код

.
b
.
/bin/mkfs.vfat
.


Я правильно думаю?

Сообщение отредактировал DDA-E398 - 25.9.2011, 15:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2011, 11:48


Куратор темы

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

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

Рейтинг: 1211



mkdosfs и в FAT 32 тоже форматирует, и вроде сам выбирает зависимо от размера раздела.
vFAT это модификация FAT.

И еще, ext2 более быстрая фс и более подходит для флешок.

Сообщение отредактировал VINRARUS - 30.9.2011, 6:57
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 26.9.2011, 11:52


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

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


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



Рейтинг: 620



VINRARUS,
А может соберем скриптовый учебник по скриптам?)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2011, 18:30


Куратор темы

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

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

Рейтинг: 1211



Programmer-tm(Мотофан.),
не думаю что будет в этом польза.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 28.9.2011, 19:10


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

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


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



Рейтинг: 520



Впал в ступор от єлементарной проблемы.
В настольном bash`e есть команда tree. Нужно вывести все папки по определенному паттерну. У меня нифига не получается( не выводит нужные папки ). Расскажите кому не лень, как этой тулзой пользоваться. с меня +
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 29.9.2011, 6:59


Куратор темы

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

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

Рейтинг: 1211



IlluminatI,
у меня на теле нет tree, помоч не могу.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
RYORUS
сообщение 4.10.2011, 15:06


Новичок
*

Группа: Пользователи
Сообщений: 11
Регистрация: 24.7.2011
Пользователь №: 228 417
Модель телефона: Motorola EM30
Прошивка: Responsibly 1.1

Рейтинг: 1



Люди извините если, может, туплю crazy.gif но какую команду нужно указать, чтобы приложение открывао файл? Заранее спасибо! clapping.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 4.10.2011, 15:10


Куратор темы

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

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

Рейтинг: 1211



RYORUS,
по началу не вьехал в суть вопроса smile.gif
путь/к/проге -d путь/к/файлу

Сообщение отредактировал VINRARUS - 4.10.2011, 16:36
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Pyth_ON!
сообщение 7.10.2011, 10:18


MOTOMAGXX0r
****

Группа: Пользователи
Сообщений: 166
Регистрация: 29.4.2009
Пользователь №: 198 680
Модель телефона: ROKR EM30/PEARL VE66
Прошивка: R6716_G_71.01.02R_B

Рейтинг: 48



Цитата(IlluminatI @ 28.9.2011, 19:10) *

Впал в ступор от єлементарной проблемы.
В настольном bash`e есть команда tree. Нужно вывести все папки по определенному паттерну. У меня нифига не получается( не выводит нужные папки ). Расскажите кому не лень, как этой тулзой пользоваться. с меня +

man tree, не?
http://linux.die.net/man/1/tree
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 12.10.2011, 14:07


Куратор темы

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

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

Рейтинг: 1211



Познакомился сегодня с зомби процесами в линуксе, вот подробнее о этом crazy.gif
http://cooper.ezlibrary.com/articles/2009/...cesses-in-linux

Сообщение отредактировал VINRARUS - 12.10.2011, 14:07
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 14.10.2011, 13:30


Куратор темы

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

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

Рейтинг: 1211



Вот сделал парсер для одной проги, может кому пригодится:
Код
wget http://www.anekdot.ru/rss/randomu.html -O /tmp/anecdot

sed -e '2!d' -e 's/.*<\/span><br \/><br \/>//' -e 's/<br \/><br \/><span.*//' -e 's/<br \/>/\n/g' /tmp/anecdot > /tmp/anuka


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


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

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

Рейтинг: 1336



VINRARUS,
Помоги мне плиз сделать одну фишку...
Требуется написать скрипт, суть которого такова: запускаю его, он должен проверить запущен ли процесс zIM_E8, если запущен, делаем (дейстсвие1), незапущен - (действие2).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 21.10.2011, 15:19


Куратор темы

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

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

Рейтинг: 1211



Цитата(igoripp @ Сегодня, 18:06)
* запущен ли процесс zIM_E8


Код
if killall -0 zIM_E8
then
echo "da"
else
echo "net"
fi

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 21.10.2011, 15:48


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

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

Рейтинг: 1336



VINRARUS,
спасибо, работает smile.gif Но только половина sad.gif Какой командой разворачивать свернутые приложения? Если таковой нету, то как узнать pid процесса в автоматическом режиме, что б его занести в переменную? А дальше через зтаскмамМини развернуть, уже знаю как smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 21.10.2011, 15:50


Куратор темы

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

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

Рейтинг: 1211



Цитата(igoripp @ Сегодня, 18:48)
* Но только половина

как это?
Цитата(igoripp @ Сегодня, 18:48)
* как узнать pid процесса в автоматическом режиме,

MUMU=`pidof zIM_E8`
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 21.10.2011, 15:56


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

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

Рейтинг: 1336



Цитата
как это?

моя гипотеза о том, что свернутое приложение можно запустить коммандой ./zim_e8 оказалось не верным sad.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Diag
сообщение 22.10.2011, 11:04


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

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

Рейтинг: 164



Цитата
моя гипотеза о том, что свернутое приложение можно запустить коммандой ./zim_e8 оказалось не верным

zTaskManMini тебе в помощь smile.gif
Прошу прощения. Проглядел.

Сообщение отредактировал Diag - 22.10.2011, 11:08
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 22.10.2011, 12:39


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

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

Рейтинг: 1336



Diag,
VINRARUS,
Код
if killall -0 zIM_E8
then
echo"da"
else
echo"net"
fi

конструкция данного вида не работает. Если приложение не запущено, то она запускается, выполняя команды под else. Если же приложение запущено, то никакой реакции на действия под then, else нету sad.gif Есть ли другой способ? И почему команда pid=`pidof zim_e8` возвращает несколько значений pid (603 602 601), хотя настоящий 601?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Diag
сообщение 22.10.2011, 12:59


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

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

Рейтинг: 164



Цитата
И почему команда pid=`pidof zim_e8` возвращает несколько значений pid (603 602 601), хотя настоящий 601?

Разве под другими идентификаторами процесс не вызывается?

Проверил. Из 3-х идентификаторов только по одному смог вызвать процесс... Не знаю, что можно предложить, но можно "разбить" результат с несколькими значениями идентификатора процесса и вызывать его, перебирая все эти значения.

Сообщение отредактировал Diag - 22.10.2011, 13:06
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
K()t
сообщение 22.10.2011, 15:51


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

Группа: Почётные мотофаны
Сообщений: 1 818
Регистрация: 3.7.2009
Из: Niko City, Ukraine
Пользователь №: 202 229
Модель телефона: Motorola Razr Maxx HD
Прошивка: CM
Финалист Конкурса 2010


Настроение:




Рейтинг: 1118.5



igoripp, посмотри скрипт запуска зРокБокса от Зорге.Р, там надеюсь найдёшь ответ на свой вопрос!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 22.10.2011, 16:50


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

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

Рейтинг: 1336



K()t,
хорошо, так и сделаю smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
K()t
сообщение 25.10.2011, 7:59


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

Группа: Почётные мотофаны
Сообщений: 1 818
Регистрация: 3.7.2009
Из: Niko City, Ukraine
Пользователь №: 202 229
Модель телефона: Motorola Razr Maxx HD
Прошивка: CM
Финалист Конкурса 2010


Настроение:




Рейтинг: 1118.5



Вот мой маленький скрипт
Код

#!/bin/sh
mypath=${0%/*}
rm $mypath/netexec.ini
echo -ne "[NetExecConfig]
Command = $mypath/java.sh" > $mypath/netexec.ini
touch "$mypath/netexec.fxd"
wget -0 "http://www.m.opera.com/dl/0qdsNLqfeWrB58jk8zUAXXdCDw8DZGVmYXVsdF8yMDA5LnBuZw==/mini.jar" "$mypath/mini.jar"
find /mmc/mmca1/.system -name mini.jar > $mypath/result.txt
b=`cat $mypath/result.txt`
showQ "Опера найдена!" "пути к установленым ява
$b" 2
cp -f $mypath/mini.jar $b
rm -f $mypath/result.txt
showQ "Замена завершена" " 8)" 2

Что не работает:
1)не хочет скачивать ничего с инета
2)как реализовать замену mini.jar если их больше чем два?
ps.gif писал на паре
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.10.2011, 8:11


Куратор темы

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

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

Рейтинг: 1211



K()t, нада: wget "адрес" -0 "куда"
Код
#!/bin/sh
mypath=${0%/*}
rm $mypath/netexec.ini
echo -ne "[NetExecConfig]
Command = $mypath/java.sh" > $mypath/netexec.ini
touch "$mypath/netexec.fxd"
wget "http://www.m.opera.com/dl/0qdsNLqfeWrB58jk8zUAXXdCDw8DZGVmYXVsdF8yMDA5LnBuZw==/mini.jar" -0 "$mypath/mini.jar"
find /mmc/mmca1/.system -name mini.jar > $mypath/result.txt
b=`cat $mypath/result.txt`
showQ "Опера найдена!" "пути к установленым ява
$b" 2
for MOZG in $b
do
cp -f $mypath/mini.jar $MOZG
done
rm -f $mypath/result.txt
showQ " 8)" "Замена завершена" 2


Сообщение отредактировал VINRARUS - 25.10.2011, 12:46
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
K()t
сообщение 25.10.2011, 11:04


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

Группа: Почётные мотофаны
Сообщений: 1 818
Регистрация: 3.7.2009
Из: Niko City, Ukraine
Пользователь №: 202 229
Модель телефона: Motorola Razr Maxx HD
Прошивка: CM
Финалист Конкурса 2010


Настроение:




Рейтинг: 1118.5



Не работает скрипт не хочет копировать указанный файл в найденные папки
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.10.2011, 12:45


Куратор темы

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

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

Рейтинг: 1211



K()t,
Я немного код поправил, тот что выше, кавычки убрал, попробуй.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 9.12.2011, 19:26


Куратор темы

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

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

Рейтинг: 1211



Так как я в системе мода Project Evolution 4 очень часто использую скрипты, а не натив, то понял что для чтения параметров с различных конфигов не удобно их читать скриптам с конфигов типа:
Код
vAvariyka=1
vApmd = 2
vCpufreq = 0
vCache = 100
vBTrof = 1
vBTtimer = 1

Ведь это нада обрабатывать этот файл сторонними утилитами которые тратят и процесорное время и силы при написании кода скрипта, чтения с таких конфигов скорее подходят для натива.
Но можна использовать возможности sh на полную, используя конфиг который подгружает все параметры в готовые переменные мгновенно dribble.gif .
Просто нада гдето (например в /vin/vin.sh) сохранить скрипт с набором переменных (они же параметры) подобного содержимого:
Код
#!/bin/sh
LD_PRELOAD=
CFGPATH=/vin/vin.sh
vAvariyka=1
vApmd=2
vCpufreq=0
vCache=100
vBTrof=1
vBTtimer=1
vBTsms=5

и подгружать их в нужном скрипте таким способом (прописывая эту строчку в начале скрипта):
Код
. /vin/vin.sh


ну менять параметры конечно тяжелее, чем читать их, но это не так часто требуеться. Для этого я например написал специальную утилитку для изменения параметров на SH.
rtfm.gif ___________________________________________________________

И ещё очень часто нужно те или иные файлы монтировать туда - сюда, а постоянно это делать (даже автоматически) не очень удобно и по мнению некоторых людей это плохо влияет на систему. По этому я использую в моде симлинки в замен монтирования. Файл из как правило RO fs заменяю на симлинк который ведет в папку в которой можна перезаписывать инфу. Ну и в этой папке другой симлинк ведет уже на нужный обьект. И если нужно изменить настройку (тоесть обьект на который ведет симлинк) всего лишъ нужно нужно удалить и опять создать симлинк с нужным путем.
Ну и так настройка меняется раз и на всегда, и не нужно выполнять лишних действий при загрузке системы, и легко можно узнать какая установка используется (с помощью readlink). Для смены настроечных симлинков я тоже написал утилитку на SH. smile.gif

Надеюсь кому то пригодится him.gif

Сообщение отредактировал VINRARUS - 9.12.2011, 19:29
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 15.12.2011, 12:17


Куратор темы

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

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

Рейтинг: 1211



Сообщение перенесено сюда: zSHapmd
Так как это является отдельной програмкой, и мало чем относится к названию данной темы, то решил создать отдельную темку, и выложить туда новую 6ю версию zSHapmd. smile.gif
надеюсь никого не обидел этим)))

Сообщение отредактировал VINRARUS - 16.12.2011, 1:25
Прикрепленный файл zSHapmd.7z   ( 833 байт ) Кол-во скачиваний: 74
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 29.12.2011, 8:09


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

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

Рейтинг: 1336



Собственно вопрос, есть ли у кого книги на русском по QT версии 4.* и выше? Для мобильный устройств если можно, хочу на новогодних каникулах подучить...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DDA-E398
сообщение 20.10.2012, 18:55


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

Группа: Пользователи
Сообщений: 372
Регистрация: 12.3.2008
Из: Нижегородская обл.
Пользователь №: 166 356
Модель телефона: E2, A910, Е398, ATRIX2
Прошивка: разные


Настроение:
Роботаю...



Рейтинг: 340



Собсно, провёл небольшое исследование зависимости времени выполнения скриптов от того в каком шелле они выполняются.
Выбор на наших фонах невелик, из всех известных шеллов доступны Bash и Ash (он же Sh).
На днях с помощью великого русского мата всётаки удалось скомпилить bash 4.2.37 (до этого был bash 4.1). И захотелось мне сравнить быстродействие оболочек (Bash 4.2, Bash 4.1 и Sh). Во время поиска помощи по компиляции баша наткнулся на скриптик для проверки скорости работы шеллов:
Код

for i in `seq 1 10000`;do
    echo -n "*ice"
done

Тестить вслепую нехотел, а комп невсегда коннектится с телом по телнэту, поэтому пришлось тестить в двух терминалах которые есть на телефоне: EzxTerm и Konzr. Тут же сделал первое открытие: Konzr быстрее EzxTerm более чем в три раза и не дохнет после 10-15 запуска тестового скрипта.
Но в обоих проявилась чёткая зависимость скорости выполнения тестового скрипта от того какой шелл его выполняет.
Сегодня, от нефиг делать, игрался с параметрами скрипта, выполнял его во всех трёх оболочках трёх оболочках в произвольном порядке (для чистоты эксперимента) и записывал результаты.
Все тесты проводились на Motorola ROKR E2 (624MHz, 128MB Swap, mUbuntu 2.x)
После недолгих подсчётов вывел формулы зависимости времени:

Для Bash 4.1
Код

bash = sh*2 + sh/5
sh = bash*5/11


Для Bash 4.2
Код

bash = sh*2 + sh/10
sh = bash*10/21


Для тех кто в танке поясню:
Как и следовало ожидать Sh быстрее Bash, причём чем тяжелее скрипт, тем быстрее он его выполняет.
(Например если Sh выполняет скрипт за минуту, то Bash версии 4.1 сделает его, примерно за 2 минуты 12 секунд, а Bash 4.2, чуть быстрее, за 2 минуты 6 секунд).

Также решил протестировать скрипт добавив параметр LD_PRELOAD=
Тут ситуация немного иная, т.е. для Bash даёт прирост скорости в 1.5 секунды (+/- 0.5 секунды), независимо от версии Bash, а для Sh - 1 секунду (+/- 0.5 секунды).
Соответственно к предыдущим формулам добавится:

Код

bash = bash - 1.5
sh = sh - 1


Вывод напрашивается сам собой: для наших супер-телефонов лучше использовать Sh, чтобы хоть как-то минимизировать тормоза наших девайсов, пусть даже самую малость. Хотя, если рассматривать систему в целом, то прирост в быстродействии может оказаться существенным (ну может и не очень существенным, но, по крайней мере заметным).

Быть может попробую скомпилить Zsh, пишут что это чемпион по скорости среди шеллов, но никак не могу найти точную информацию об отличии его синтаксиса от синтаксиса Bash и Sh. Мож кто из мотофанов просвятит?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Написание скриптов #!/bin/sh for UNIX, Кто поможет? · Motorola на Linux OS · Forum
 

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

 



Текстовая версия Сейчас: 18.7.2025, 2:56

Форум живёт: