[Пролог] Вот сижу я тут в 2-23,и думаю о чем бы статейку написать,поюзал поиск ачата что было,А чего не было,и оказывается что шелл кодинга не было,или я так искал,ну да не об этом щас...я ведь завтра уеду,а это важно,а вы без мну не сможете,ну я и решил оставить о себе память,хорошую\плохую,эт уже второй вопрос,но она будети это главное,полазил по форумам,и наткнулся на название шелл-коддинг,что -то чертовски знакомое подумал я и меня осенило... Сразу скажи скажу что статья написана мною на 60%,коментировал и все остальное делал,я но коды брал готовыеэт так чтоб не говорили что копирайтов нету,если что) Вобщем в пару словах Shell-програмирование-это Умение создавать скрипты на входных языках командных интерпретаторов [Общие положения] Комментарии начинаются с символа #,за исключением первой строки. Первой строкой сценария является путь к интерпретатору,начинающийся с #! с помошью которого будет запущен данный скрипт.Например: # [Переменные,ввод и вывод данных] Для задания переменных используется оператор присваевания "=".Синтаксис следующий: <переменная>=<значение> Замечу,что в отличие от языков perl и php,между знаком "=" и остальными параметрами нельзя ставить пробел.В этом случае интерпретатор выдаст ошибку.Чтобы обратится к заданной переменной ,надо вызвать её поставив перед ней знак $.Удалить переменную можно с помощью оператора unset. Оператор Echo просто выводит строку(или переменную), идущую после него: В данный пример также можно добавить одинарные или двойные кавычки, от этого результат работы программы не изменится.Но не стоит использовать обратные кавычки,т.к.эти символы используются для выполнения команд: Оператор read присваевает значение переменной.Вот пример,который просит ввести переменную var,считывает её а затем выводит. [Агрументы командной строки] Как и во всех консольных программах, в shell-сценарий можно передавать аргументы из командной строки.Переменные $1..$9 соответствуют параметрам, переданным из командной строки сценарию.Переменная $0 содержит имя интерпретируемого файла.$#-содержит количество переданных аргументов. $* и $@ содержат все аргументы,но в $@ все аргументы выделены кавычками. Напишем скрипт,который выводит 2 аргумента командной строки и имя исполняемого файла.Запуск скрипта: ./script.sh 1 2 [Арифметические операции] Арифметические операции производятся с использованием оператора let. Операции: * - умножение / - деление + - сложение - - вычитание % - деление с остатком Синтаксис: let <значение> <оператор> <значение> Пример: [Оператор test или []] Данные операторы предназначены для выполнения сравнений двух значений. Если сравнение успешно-оператор возвращает 0,иначе 1.Код завершения последней выполненной команды хранится в специальной переменной $?. Синтаксис: test <значение> -опция <значение> или [<значение> -опция <значение>] Пример: Ниже приведены все опции оператора 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 Пример: Результат работы,при переданном параметре равном 10: 2)if <команда> then <команда> else <команда> fi Пример: Результат работы,при переданном параметре равном 10: Результат работы,при переданном параметре равном 7: )if <команда> then <команда> elif <команда> else <команда> fi Пример: Результат работы,при переданном параметре равном 10: Результат работы,при переданном параметре равном 9: Результат работы,при переданном параметре равном 8: 4)case <строка> in <шаблон>) <команды> ;; *) <команды> ;; esac Case-конструкция позволяет выбирать один из нескольких альтернативных вариантов. Результат работы,при переданном параметре равном 1: Результат работы,при переданном параметре равном 2: Результат работы,при переданном параметре равном 10: [Циклы] 1)while <условие> do <команды> done Выполняет команды пока условие истино. Пример: 2)until <условие> do <команды> done Выполняет команды пока условие ложно. Пример: ВОт собственно и фсе...)сильно не бить(
http://www.kodsweb.ru/texts/sh-coding.txt Автор, а ты спросил разрешения у команды KODSWEB? Резюме: Замена чужих комментов к примерам чужого кода на свои - это не статья! Статья скорее всего будет перенесена или удалена, так как не соответсвует правилам раздела...