![]() |
Shell-кодинг
[Пролог]
Вот сижу я тут в 2-23,и думаю о чем бы статейку написать,поюзал поиск ачата что было,А чего не было,и оказывается что шелл кодинга не было,или я так искал,ну да не об этом щас...я ведь завтра уеду,а это важно,а вы без мну не сможете,ну я и решил оставить о себе память,хорошую\плохую,эт уже второй вопрос,но она будети это главное,полазил по форумам,и наткнулся на название шелл-коддинг,что -то чертовски знакомое подумал я и меня осенило... Сразу скажи скажу что статья написана мною на 60%,коментировал и все остальное делал,я но коды брал готовые:)эт так чтоб не говорили что копирайтов нету,если что) Вобщем в пару словах Shell-програмирование-это Умение создавать скрипты на входных языках командных интерпретаторов [Общие положения] Комментарии начинаются с символа #,за исключением первой строки. Первой строкой сценария является путь к интерпретатору,начинающий я с #! с помошью которого будет запущен данный скрипт.Например: # Цитата:
Для задания переменных используется оператор присваевания "=".Синтаксис следующий: <переменная>=<значение> Замечу,что в отличие от языков perl и php,между знаком "=" и остальными параметрами нельзя ставить пробел.В этом случае интерпретатор выдаст ошибку.Чтобы обратится к заданной переменной ,надо вызвать её поставив перед ней знак $.Удалить переменную можно с помощью оператора unset. Оператор Echo просто выводит строку(или переменную), идущую после него: Цитата:
от этого результат работы программы не изменится.Но не стоит использовать обратные кавычки,т.к.эти символы используются для выполнения команд: Цитата:
просит ввести переменную var,считывает её а затем выводит. Цитата:
Как и во всех консольных программах, в shell-сценарий можно передавать аргументы из командной строки.Переменные $1..$9 соответствуют параметрам, переданным из командной строки сценарию.Переменная $0 содержит имя интерпретируемого файла.$#-содержит количество переданных аргументов. $* и $@ содержат все аргументы,но в $@ все аргументы выделены кавычками. Напишем скрипт,который выводит 2 аргумента командной строки и имя исполняемого файла.Запуск скрипта: ./script.sh 1 2 Цитата:
Арифметические операции производятся с использованием оператора let. Операции: * - умножение / - деление + - сложение - - вычитание % - деление с остатком Синтаксис: let <значение> <оператор> <значение> Пример: Цитата:
Данные операторы предназначены для выполнения сравнений двух значений. Если сравнение успешно-оператор возвращает 0,иначе 1.Код завершения последней выполненной команды хранится в специальной переменной $?. Синтаксис: test <значение> -опция <значение> или [<значение> -опция <значение>] Пример: Цитата:
Сравнение целых чисел: -gt больше чем -lt меньше чем -ge больше чем либо равно -le меньше чем либо равно -eq равно -ne не равно Сравнение строк: -z проверка на наличие пустой строки -n проверка на наличие строки-значения = равенство != неравенство str проверка на наличие строки,состоящей из нулей Логические операции: -a И -o ИЛИ ! НЕ Проверка файлов: -f установка факта существования файла и его регулярности -s проверка,не является-ли файл пустым -r проверка возможности считывания файла -w проверка возможности записи файла -x проверка исполняемости файла -d проверка,является-ли файл каталогом -h проверка,является-ли файл ссылкой -c проверка,является-ли файл байт-ориентированным устройством -d проверка,является-ли файл блок-ориентированным устройством [Условия] Ниже описан синтаксис всех условных операторов,с примерами. 1)if <команда> then <команда> fi Пример: Цитата:
Цитата:
<команда> else <команда> fi Пример: Цитата:
Цитата:
Цитата:
<команда> elif <команда> else <команда> fi Пример: Цитата:
Цитата:
Цитата:
Цитата:
<шаблон>) <команды> ;; *) <команды> ;; esac Case-конструкция позволяет выбирать один из нескольких альтернативных вариантов. Цитата:
Цитата:
Цитата:
Цитата:
1)while <условие> do <команды> done Выполняет команды пока условие истино. Пример: Цитата:
Цитата:
do <команды> done Выполняет команды пока условие ложно. Пример: Цитата:
Цитата:
ВОт собственно и фсе...)сильно не бить( |
http://www.kodsweb.ru/texts/sh-coding.txt
Цитата:
Резюме: Замена чужих комментов к примерам чужого кода на свои - это не статья! Статья скорее всего будет перенесена или удалена, так как не соответсвует правилам раздела... |
интерестно, но -=lebed=- прав, НЕТ ПЛАГИАТУ
|
| Время: 14:07 |