motofan logo
> 

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

Soshok
сообщение 7.5.2009, 14:36


Опытный
***

Группа: Пользователи
Сообщений: 115
Регистрация: 20.5.2007
Из: Борисполь
Пользователь №: 135 561
Модель телефона: Z6 'n' U9
Прошивка: 44R and OER

Рейтинг: 4.5



Привет.
Кто может мне помочь научится писать скрипты.
Может кто напишет мануал (хотя б в общих чертах)?
Оч прошу...
Зарание спасибо!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Ответ в темуСоздание новой темы
Ответов
VINRARUS
сообщение 27.6.2011, 15:52


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

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Продолжу с команд для if smile.gif


Дальше описаны какие еще опции могут быть заключены в квадратные скобки.
Рассмотрим уже знакомую строчку:
Код
if [ "$GRIB" = "1" ]

С опцией "=" (идентичные значения по обе стороны "=") мы уже познакомились, она обрабатывает равные ли заданные значения, и не важно буквы там или цифры, так сказать проверяет идентичны ли 2 набора символов.
Существует способ легко изменить опцию на противоположную, поставив перед ней знак "!" (звучит как НЕ)
Например строчка:
Код
if [ "$GRIB" != "1" ]

уже проверяет наоборот разные ли значения по обе стороны знаков "!=".
Ну это незаменимо для использования с "elif", ну и для "if" тоже нужно (хотя для "if" для этой цели можно использовать "else").
clapping.gif Только нужно обязательно запомнить что символ "!" с символом "=" ВСЕГДА пишется слитно без пробелов между ими, а вот с другими опциями через ОДИН ПРОБЕЛ

rabby.gif Вот список всех опций:

Сравнение целых чисел:

-gt больше чем
-lt меньше чем
-ge больше чем либо равно
-le меньше чем либо равно
-eq равно
-ne не равно

Сравнение строк:

-z проверка на наличие пустой строки
-n проверка на наличие строки-значения
= равенство
!= неравенство
str проверка на наличие строки,состоящей из нулей

Логические операции:

-a И
-o ИЛИ
! НЕ

Проверка файлов:

-f установка факта существования файла и его регулярности
-s проверка,не является-ли файл пустым
-r проверка возможности считывания файла
-w проверка возможности записи файла
-x проверка исполняемости файла
-d проверка,является-ли файл каталогом
-h проверка,является-ли файл ссылкой
-c проверка,является-ли файл байт-ориентированным устройством
-d проверка,является-ли файл блок-ориентированным устройством

Примеры:

Код
if [ -f /mmc/mmca1/muzica/trecklist.txt ]
then
echo YES
fi

Проверяет существует ли файл по этому пути, если нет или если это каталог, то ничего не делать.
Нужно заметить что если в пути к файлу\папке есть пробелы, то нужно путь брать в кавычки, иначе скрипт перестанет работать на этом условии.

Код
if [ 2 -lt 4 -a 8 != GR ]
then
echo URAA
fi

Проверяет меньше ли "2" за "4", и не идентичные ли значения "8" и "GR", и в случае если оба условия верны выполняется команда "echo URAA" (которая работает только в телнете или терминале и выводит слово "URAA")

Код
if [ ! -z "$GG" ]
then
echo aga
fi

Проверяет пустая ли переменная "$GG", если нет то выполняет "echo aga".
Также для этого действия можно написать такое условие:
Код
if [ "$GG" != "" ]
then
echo aga
fi




clapping.gif
И обязательно в условиях переменную нужно брать в двойные скобки (как и все слова с пробелами), потому что если в переменной будет пробел, а условие очень чувствительно к пробелам, то скрипт потерпит крах при выполнении!
Хотя если точно известно что значение переменной без пробелов и что она не пустая, то можно и без кавычек (хотя лучше перестраховаться)


Ну и нужно быть внимательным чтобы после "[" и перед "]" ОБЯЗАТЕЛЬНО стояли пробелы, иначе если вместо пробелов будет стоять другой символ, то скрипт на этом условии завершится с ошибкой!


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

Сообщений в этой теме
Soshok   Написание скриптов #!/bin/sh for UNIX   7.5.2009, 14:36
Chacha_Ivanov   Изучай на здоровье bigsmile;   7.5.2009, 16:53
Soshok   Chacha_Ivanov, чего так много??? :lol: :unsure: ...   7.5.2009, 21:18
SergGG   [b]Chacha_Ivanov, чего так много??? :lol: :unsu...   8.5.2009, 8:57
SanchoNT   может кто-нибудь знает какой командой или каким ск...   11.5.2009, 0:19
Virgilij   SanchoNT, реально, глянь в тему Полезные скрипты д...   16.5.2009, 22:39
Chacha_Ivanov   Вот Ant-ON написал для em30/e8 программульку небо...   21.5.2009, 12:12
SanchoNT   скачал, закинул на карту памяти, законнектился чер...   21.5.2009, 13:03
SanchoNT   ну вобщем ничего не помогает, потом открыл zTaskMa...   21.5.2009, 13:49
Programmer-tm(Мотофан.)   А по скрипту кто нить сможет помочь? Нужна команда...   12.6.2011, 11:46
VINRARUS   Ура! В теме появилася шапочка. :watsup: В дан...   17.6.2011, 17:56
DaNTaLiaN™   Пытался написать по подобию скрипт для zpk архива ...   17.6.2011, 19:42
VINRARUS   DaNTaLiaN™, есть серьезные но простые ошыбки, вот ...   17.6.2011, 20:01
VINRARUS   :wizard: Знач начну с основ. Shell скрипт (SH) - ...   18.6.2011, 18:40
Programmer-tm(Мотофан.)   Будет кому полезен мануал такого плана? ;) Конеч...   19.6.2011, 11:24
igoripp   #!/bin/sh showQ "Очистити базу?" ...   19.6.2011, 12:39
VINRARUS   #!/bin/sh showQ "Очистити базу?" ...   19.6.2011, 12:45
Osta   мне тоже нужно, хотя и не для телефона, пиши обяза...   19.6.2011, 17:08
VINRARUS   Продолжу с команд для if :) Дальше описаны как...   27.6.2011, 15:52
VINRARUS   В начале выполняется команда "cat /tmp/reso...   27.6.2011, 22:19
igoripp   Недавно делал калькулятор скриптовой. а сейчас не ...   4.7.2011, 10:25
Programmer-tm(Мотофан.)   igoripp, а файлик showTextEntry присутствует?   4.7.2011, 10:44
igoripp   Programmer-tm(Мотофан.), да. Добавлено позже (4.7...   4.7.2011, 10:51
Programmer-tm(Мотофан.)   x="`$mypath/showTextEntry 'Men...   4.7.2011, 11:08
igoripp   так тоже не работает, проверил другие приложения,...   4.7.2011, 12:25
Programmer-tm(Мотофан.)   igoripp, Просто шоу модуль найди такой   4.7.2011, 13:13
VINRARUS   А ну так попробуй: #!/bin/sh x=`showTextE...   4.7.2011, 17:22
igoripp   VINRARUS, Проблема решилась перепрошивкой телефона...   4.7.2011, 17:30
K()t   Кто поможет написать команду чтобы она искала в фа...   7.7.2011, 8:33
Pyth_ON!   Кто поможет написать команду чтобы она искала в ф...   10.7.2011, 6:47
VINRARUS   Както так, пробуй, не знаю будет ли работатъ как ...   9.7.2011, 20:40
VINRARUS   Pyth_ON!, а и правда, все решается банальной ...   10.7.2011, 8:48
Pyth_ON!   VINRARUS, Спасибо за дополнение :)   10.7.2011, 13:57
Osta   уважаемые, помогите перенести скрипт с явы ...   10.7.2011, 17:41
VINRARUS   Osta, вот ето подставляет в ссылку севодняшную дат...   10.7.2011, 19:04
igoripp   Помогите создать скрипт, который, через 120 секунд...   11.7.2011, 18:56
mPhoneR   А может, лучше как-то так? (sleep 120; /путь/...   12.7.2011, 5:03
Osta   а есть какие-то готовые парсеры с башорга или иног...   12.7.2011, 5:47
Pyth_ON!   а есть какие-то готовые парсеры с башорга или ино...   13.7.2011, 4:58
Osta   а не на php парсеры есть ?   13.7.2011, 13:17
Pyth_ON!   а не на php парсеры есть ? Могу собрать минималь...   13.7.2011, 16:08
Osta   и кто бы показал Так Было - Так Стало )? интересу...   13.7.2011, 16:55
VINRARUS   Вот нашол способ быстрее считывать параметры с кон...   18.7.2011, 11:06
igoripp   Знающие люди, подскажите. sh поддерживается всеми ...   19.7.2011, 16:48
VINRARUS   Я за sh, так как он поддерживаеться гарантировано ...   19.7.2011, 18:29
Osta   Name=`date +%H:%M@%d%a-` как правильн...   26.7.2011, 12:34
VINRARUS   Разделив 1 команду на 2: Name="`date +%H...   26.7.2011, 14:23
Osta   VINRARUS, спасибо, работает ! А можно это пер...   26.7.2011, 16:05
VINRARUS   Тут очень глубокие знания нада, да еще и не только...   26.7.2011, 17:55
Osta   смотри : скачиваем файл http://bash.org.ru/random,...   26.7.2011, 19:43
VINRARUS   я не знаю как на sh качать файлы с нета. А без ска...   27.7.2011, 5:41
igoripp   А кто подскажет как провернуть одно дело? Есть фай...   27.7.2011, 9:47
IlluminatI   igoripp, на Си где-то был исходник, могу впринципе...   27.7.2011, 12:15
VINRARUS   igoripp, ето выдаст все в 1 строчку tr -d "...   27.7.2011, 12:40
Osta   напиши как будто он тут /var/etc/file.html   27.7.2011, 12:44
igoripp   VINRARUS, a как этим пользоваться? Конструкция вид...   27.7.2011, 13:18
VINRARUS   cat 1.txt | tr -d "\n" > 2.txt о...   27.7.2011, 13:51
igoripp   Так тоже не работает( вопрос по-прежнему открыт...   27.7.2011, 14:58
VINRARUS   igoripp, у меня работает. Надеюся ты вместо 1.ТХТ...   27.7.2011, 15:56
igoripp   VINRARUS, Спасибо огромное :clapping: Такая связка...   28.7.2011, 5:53
VINRARUS   Osta, вот етот код ищет в файле строчку с словами ...   28.7.2011, 11:43
Osta   tmp/V.txt стабильно равен 0 байт , переносы по-люб...   28.7.2011, 13:42
VINRARUS   вот: #!/bin/sh QT=`cat /var/etc/file.html...   28.7.2011, 18:29
Osta   ӕ - а что это за символ? у меня akelpad утве...   28.7.2011, 18:38
VINRARUS   ну ето символ который никто не использует. Мож поп...   28.7.2011, 21:15
Osta   заменил на ^ тхт файл пуст   28.7.2011, 21:27
VINRARUS   Osta, выложы сюда сюда тот файл который прога дол...   29.7.2011, 4:57
Osta   Osta, выложы сюда сюда тот файл который прога до...   29.7.2011, 10:20
VINRARUS   Osta, чото тот файл не в юникоде, у меня там иног...   29.7.2011, 16:07
Osta   можно сделать от первого слова sux до первого слов...   29.7.2011, 16:31
VINRARUS   нужно уникальное первое слово или сочетание символ...   29.7.2011, 19:15
igoripp   Этот код для перевода десятичного числа в двоичное...   10.8.2011, 19:49
VINRARUS   спасиба :) Ну тут будет сложновато. Нада все дейст...   11.8.2011, 7:26
IlluminatI   жесть... это всё безобразие надо в цикл сворачива...   11.8.2011, 7:59
igoripp   Считать должен правильно, я проверял только на про...   11.8.2011, 8:03
IlluminatI   в hex можно делать проверку: если от 0 до 9 то зап...   11.8.2011, 8:04
igoripp   Там и так цикл есть) Добавлено позже (11.8.2011, ...   11.8.2011, 8:05
IlluminatI   я сишными вставками покажу) int ss[2] = {...   11.8.2011, 8:48
Programmer-tm(Мотофан.)   Ребят. Давайте подумаем, как сделать русско англий...   11.8.2011, 9:20
VINRARUS   if GROB="`sed "/^$slovo/!d...   11.8.2011, 10:23
IlluminatI   а не проще посимвольно искать? Геморойней конечно ...   11.8.2011, 12:01
Programmer-tm(Мотофан.)   IlluminatI, Это значит если найдется содержимое п...   11.8.2011, 12:53
igoripp   User and Linux part1 и User and Linux part2 - ста...   11.8.2011, 19:02
VINRARUS   #!/bin/sh CFGPATH=${0%/*}/nastroyka.cfg Z...   16.8.2011, 9:54
Programmer-tm(Мотофан.)   #!/bin/sh CFGPATH=${0%/*}/1.cfg Z2=...   27.8.2011, 5:33
igoripp   Уважаемые, как заархивировать папку bd, лежащую ря...   30.8.2011, 13:19
Programmer-tm(Мотофан.)   Пакуем: /usr/local/p7zip/7z (путь где архиватор в...   30.8.2011, 13:58
Diag   Можно для распаковки busybox unzip использовать......   30.8.2011, 18:13
Programmer-tm(Мотофан.)   Diag, То же вариант) Ну, выберет, что больше приг...   30.8.2011, 18:17
VINRARUS   Diag, busybox dirname /tama/kaka.rak busybox base...   30.8.2011, 18:48
Diag   VINRARUS, благодарю. А как мне тогда получить имя...   31.8.2011, 9:35
igoripp   Архивация происходит на Ура, а вот разархивация ...   31.8.2011, 9:47
Programmer-tm(Мотофан.)   А $mypath/arh/arh.7z там точно архив лежит? с...   31.8.2011, 10:55
igoripp   Programmer-tm(Мотофан.), 100% странно очень... А у...   31.8.2011, 11:32
Programmer-tm(Мотофан.)   igoripp, Скачай тогда You_Box в теме приложений z...   31.8.2011, 12:10
VINRARUS   Мне неизвестны способы, только через натив sed ...   31.8.2011, 16:10
Diag   Я вам премного благодарен. И вопрос на засыпку: ка...   31.8.2011, 16:22
VINRARUS   Diag, так вроде: aga=`echo $ga | sed s...   31.8.2011, 17:06
igoripp   /usr/local/p7zip/7z x "$mypath/arh/arh.7z...   31.8.2011, 18:04
3 страниц V  1 2 3 >

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

Ответ в темуСоздание новой темы
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 14.6.2025, 3:40

Форум живёт: