В этой статье:

  • Размещение PHP на HTML-странице
  • Комментарии в скриптах
  • Отображение текста
  • Переменные и константы в PHP
  • Оператор присваивания
  • О типах данных

Для написания кода на PHP подходит любой текстовый редактор (например Notepad++).

Размещение PHP на HTML-странице

Код скрипта PHP может размещаться непосредственно на HTML-странице. Чтобы узнать, как это делается, давайте рассмотрим следующий простой пример:

Это обычный HTML-документ

С первого взгляда пример напоминает обычный файл HTML. Единственное новшество здесь –– конструкция .

Все, что стоит между , интерпретируется как код на языке PHP. Здесь мы также видим пример использования команды echo –– одной из наиболее важных, часто используемых команд при программировании на этом языке. Команда echo применяется, когда необходимо что-либо написать в текущем документе. Так наша небольшая программа на PHP в HTML-документе выводит фразу “А это PHP”. Все что находится вне процессор РНР передает без изменения непосредственно на динамическую web-страницу.

Вместо специального тега могут также использоваться теги :

код на РНР

Наш первый сценарий

Тексты сцеариев (php-программ) должны храниться в файлах с раширением php.

РНР-код состоит из отдельных операторов, каждый из которых завершается точкой с запятой (ее отсутствие вызовет сообщение об ошибке ).

Первый скрипт на РНР (файл index.php) будет достаточно простым, но уже он продемонстрирует совместное использование HTML и РНР.

Первый пример

PHP-программа состоит из двух операторов присваивания, определения значения константы и вывода текста и текущей даты в окно браузера с помощью команды echo .

Данный текст можно набрать в любом текстовом редакторе, например, в NotePad++, и сохранить под именем index.php. Следует убедиться, что файл сохранен как php-файл, в противном случае он не будет корректно обработан РНР.

В случае локальной работы необходимо скопировать файл index.php в каталог документов web-сервера. Для Denver это home/localhost/www (если в настройках не указано иное). После чего можно переходить непосредственно к запуску скрипта.

Для запуска скрипта index.php следует открыть web-браузер, а затем ввести в адресной строке полный путь к этому скрипту. В случае локальной установки адрес будет таким:

Если все сделано правильно, на экране мы увидим:

Файл styles.css (таблица стилей):

/* Стили для отображения содержимого страницы */ * { margin: 0; padding: 0; } body { font-family: Verdana, Arial, sans-serif; color: #14556b; background-color: #f2f2f2; margin: 20px; } h3, p { margin: 6px 0; /* Поля заголовков и абзацев */ }

Прямо из браузера мы можем просмотреть код этой странички, сформированный web-сервером:

Таким образом, имя переменной заменяется ее значением, которое помещается на то же место , где в программе стояло имя этой переменной.

Итак, PHP-файлы обычно представляют собой смесь HTML, CSS и РНР. При этом РНР-код всегда заключается внутри конструкции . Web-сервер посылает HTML-код браузеру без изменения. РНР-код выполняется, и если он формирует теги и какой-либо текст для отображения, этот текст вставляется на то место , где размещался РНР-код. Браузер интерпретирует HTML-теги страницы и отображает результат на экране.

PHP-код может располагаться в произвольном месте и многократно включаться в текст скрипта. С его помощью можно также формировать и HTML-теги, что видно из нашего примера.

Комментарии в скриптах

В РНР существует три типа комментариев. Первый позволяет располагать комментарии в нескольких строках, начиная их символами /* (записываются без пробела) и заканчивая символами */, например:

Следует иметь ввиду, что вложенные комментарии записывать нельзя .

Многострочные комментарии могут оказаться полезными там, где надо вставить значительный объем текста. Кроме того, распространенным приемом при отладке программы является заключение части кода в комментарий (чтобы предотвратить его выполнение).

Остальные два типа комментариев начинаются с символов // или символа # и продолжаются только до конца строки, в которой они записаны. Этот тип комментариев удобен тем, что их можно размещать справа от операторов, например:

Очень часто комментарий добавляют в начало сценария, чтобы дать о нем краткую информацию и указать, какие функции он выполняет. Например:

Отображение текста

Оператор echo , который предназначен для отображения произвольного текста на web-странице, является, пожалуй, наиболее употребительным оператором РНР. В простейшем случае после echo следует поместить одну строку в кавычках. Текст может быть заключен как в двойные кавычки, так и в простые кавычки (апострофы ). Для отображения чисел кавычки необязательны, например:

В общем случае после echo можно записать несколько строк для вывода, которые разделяются запятыми.

При необходимости длинная строка может быть размещена на нескольких строках в тексте скрипта, например:

Отдельные строки могут объединяться при помощи оператора сцепления «.» –– точка. В результате образуется единая строка, которая передается оператору echo. Например:

что эквивалентно

Для отображения кавычки следует разместить перед ней обратный слеш, например:

Замечание . Если выводится одна текстовая строка, то вместо оператора echo можно использовать функцию print . В этом случае различий между echo и print нет. Однако в echo мы можем добавлять к первой строке другие строки, разделяя их запятыми.

Отображение большого текста

При использовании echo для отображения большого объема текста его можно записать так: вначале ставим символы .

Переменные, оператор присваивания

Как и в любом языке программирования, переменные предназначены для хранения данных. В РНР имена переменных всегда начинаются со знака доллара $, далее следует буква или знак подчеркивания, после которого может следовать произвольное количество букв, цифр или знаков подчеркивания. Следует помнить, что в именах переменных большие буквы и малые буквы различаются. Например, $var и $Var –– это разные переменные.

После создания переменной (в результате присваивания ей некоторого значения), доступ к этой переменной возможен в любом месте скрипта. При этом одна и та же переменная может содержать на протяжении программы значения разных типов.

Переменная существует до тех пор, пока выполняется программа.

Для присвоения значения переменной в РНР используется оператор присваивания , обозначаемый знаком равенства =. Ниже приведены примеры операторов присваивания:

$ternperature = 24;

$number_of_earths = 1;

$pi = 3.1415926535;

$message = “Доброе утро!”;

Обратим внимание, что одним переменным присвоены числа, а другим - строки.

Задание . Вывести все значения этих переменных в браузер: (1) каждое значение –– в новой строке; (2) –– все значения –– в одной строке.

Константы

Иногда не требуется менять в программе один раз заданное значение. Для этого используются константы - их значения не изменяются в процессе выполнения скрипта.

Для описания константы используется функция define, которой передается имя константы и ее значение. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре (большими буквами), например:

define (“PI”, 3.1415926535);

Следует обратить внимание, что при определении константы перед ней не ставится знак доллара. Попытка изменения значения константы с помощью оператора присваивания приведет к ошибке.

Константам нельзя давать имена, которые являются служебными словами языка РНР (так как перед именем константы не ставится знак доллара).

Зарезервированные (служебные) слова РНР:

and array as break default
die do echo endif endswitch
endwhile global if include print
require eval lnclude_onc e require_once return
case сfunction class const continue
declare else elseif empty enddeclare
endfor endforeach exception exit extends
for foreach function isset list
new old_function or php_user_filter static
switch unset use while xor

В языке РНР определено множество встроенных констант, которые можно использовать в сценариях. Эти константы начинаются с двух символов подчеркивания и заканчиваются тоже двумя символами подчеркивания. Например:

__CLASS__ __FILE__ __FUNCTION__ __LINE__ __METHOD__

Прерывание выполнения сценария

Наиболее часто для останова выполнения сценария применяется функция exit (). Другой полезной функцией является die (“Сообщение”), которая позволяет также вывести сообщение об ошибке. Это позволяет сообщить пользователю причину, по которой сценарий завершился неудачей.

Уничтожение переменной

Иногда требуется принудительно уничтожить переменную. Для этого предназначена функция unset().

Если попробовать выполнить оператор echo “$variable” после вызова функции unset , то мы получим сообщение об ошибке –– переменная $variable больше не будет существовать.

Можно одновременно уничтожить несколько переменных:

unset($variable, $name);

Следующий текст при первом чтении можно пропустить

Типы данных

В языке РНР тип переменной определяется автоматически при создании переменной на основе ее значения. Тем не менее, следует иметь представление о типах данных, которые могут использоваться. Всего их восемь:

  • Логический тип, содержит значения TRUE или FALSE.
  • Целое число.
  • Вещественное число.
  • Текст произвольной длины.
  • Массив.
  • Объект.
  • Ресурс (например, файл).
  • NULL Значение NULL.

Например:

$variable = TRUE;

В данном случае тип переменной определяется однозначно. Трудности начинаются при смешивании различных типов данных в одном выражении, например, при сложении целого числа и строки, которая изображает число. Ниже приведено несколько примеров подобных выражений:

Для предотвращения потенциальных проблем не следует смешивать различные типы данных. Но даже и в таком случае РНР выполняет неявное преобразование типов. Если же требуется выполнить явное преобразование типа, то требуемый тип должен быть указан слева от имени переменной в круглых скобках. Вот несколько примеров явного преобразования типов:

$int_variable = (integer) $variable;

$float_variable = (float) $variable;

$string_jyariable = (string) $variable;

При преобразовании в логический тип boolean, следующие значения преобразуются в значение FALSE.

  • Целое число 0.
  • Вещественное число 0.0.
  • Пустая строка и строка “0”.
  • Массив с нулевым количеством элементов.
  • Объект, не имеющий свойств.
  • Специальный тип NULL.

При преобразовании к типу целых значений другие типы преобразуются так:

  • Логическое FALSE преобразуется в целое число 0, логическое TRUE преобразуется в целое число 1.
  • Вещественные числа округляются в меньшую сторону. При преобразовании в вещественное число сперва осуществляется преобразование в целочисленное значение.

Возможно также преобразование строковых значений в числовые типы данных, но при этом имеется ряд особенностей.

Любые другие значения, включая все ресурсы, преобразуются в TRUE.

Итоги

Язык РНР предназначен для создания динамических web-страниц.

  • Код РНР заключается между тегами .
  • Оператор echo предназначен для отображения текста.
  • Имеется возможность включать в код РНР большие блоки текста
  • В РНР используются три вида комментариев: /* … */, // и #.
  • Имя переменной предваряется знаком доллара $, начинается с буквы или знака подчеркивания, после которого может следовать произвольное количество букв, цифр или знаков подчеркивания.

Представьте себе переменные, как хранилища данных. Чтобы обрабатывать информацию, будь то числа или имена, вам необходимо создать своеобразный контейнер для хранения информации. Данный процесс называется объявлением переменной. В PHP синтаксис объявления переменной выглядит так: “$myVariable = “Hello World!”;”

  • Знак доллара ($) в самом начале сообщает движку PHP, что далее идет переменная $myVariable. Все переменные обязательно должны начинаться со знака доллара, но название самой переменной может быть любым.
  • В примере выше строка "Hello World!" - это значение, а переменной является $myVariable. Вы сообщили PHP, что нужно сохранить значение справа от знака равенства (=) в переменной, расположенной слева от знака равенства.
  • Переменная, содержащая текстовое значение, называется строкой.

  • Сохраните и откройте файл в браузере. Воспользуйтесь меню «Файл» > «Сохранить как…» и сохраните файл с именем “myfirstvariable.php”. Откройте браузер, и введите в него адрес: http://localhost/myfirstvariable.php; выполненный скрипт выведет значение переменной. Результат окажется тем же, что и при выводе обычного текста, но способ его получения будет отличаться.

    • Убедитесь в том, что вы сохранили файл в корневой директории документов сервера. Обычно внутри папки сервера Apache на Windows этот каталог называется “htdocs”, для OSX каталог по умолчанию расположен в /Library/Webserver/Documents, однако этот путь может быть скорректирован при настройке сервера.
  • Используйте переменные с числами. Переменные также могут хранить в себе числовые значения (например, целые числа), с которыми можно выполнять простые математические действия. Для примера объявите в скрипте три переменные:“$mySmallNumber”, “$myLargeNumber”, и “$myTotal”.

    • Ваш код должен выглядеть примерно так:
  • Присвойте целые численные значения первым двум переменным. Присвойте целые значения для “$mySmallNumber” и “myLargeNumber”.

    • Обратите внимание, что целые числа не нужно заключать в кавычки. В противном случае числа будут считаться строковыми значениями, как будто бы они являются текстом наподобие “Hello World!”.
    • Ваш код должен выглядеть примерно так:
  • Используйте третью переменную для суммирования и вывода результата. Чтобы не выполнять расчеты самостоятельно, можно просуммировать две переменные в “$myTotal”. Просто укажите соответствующую математическую функцию, и компьютер выполнит расчет за вас. Чтобы вывести результат на экран, нужно всего лишь вызвать команду echo с переменной в качестве параметра. Вызов команды echo должен располагаться после объявления переменной.

    • Любое изменение значений объявленных ранее переменных будет отражаться на результате вывода значения переменной “$myTotal”, выводимой с помощью команды echo.
    • Теперь ваш код должен выглядеть примерно так:
  • Сохраните файл и откройте скрипт в браузере. Ваш браузер должен вывести на экран одно число. Это число будет являться суммой двух значений, определенной расчетом переменной “$myTotal”.

  • При необходимости меняйте значения строковых переменных. Использование переменной для хранения текста позволяет обращаться в коде к переменной вместо постоянного повторного набора одного и того же текста. В дальнейшем с этим текстом можно выполнять и более сложные манипуляции.

    • Первая переменная с именем $myVariable содержит строку "Hello World!". Пока вы сами не измените значение этой переменной, $myVariable будет содержать данную строку текста без изменений.
    • Команда echo будет выводить на экран заданное вами значение переменной $myVariable.
  • Если требуется, изменяйте значения целочисленных переменных. Вы уже ознакомились с базовыми основами операций с целыми числами с использованием математических функций. Итоговые результаты таких расчетов могут сохраняться в отдельной переменной. При этом были рассмотрены простейшие шаги, демонстрирующие возможности работы с переменными.

    • Каждой из двух переменных $mySmallNumber и $myLargeNumber было присвоено целое число.
    • Третья переменная $myTotal сохраняла в себе сумму значений двух вышеуказанных переменных $mySmallNumber и $myLargeNumber. Пока $mySmallNumber хранит одно числовое значение, а $myLargeNumber хранит другое число, $myTotal в результате вычисления становится равным сумме двух этих чисел. Результат вычисления может измениться с изменением значения любой из исходных переменных.
  • (учебный курс для начинающих)

    ВВЕДЕНИЕ

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

    То, чем сказано выше подкрепляется результатами проделанной работы на страницах сайта:
    150 скриптов , Ноу-Нау , изучением учебных дисциплин с тест-картами контроля и обучения.

    Задача настоящего курса - это с помощью разных методик: пассивных (для ленивых, занятых), активных, творческих - научиться писать скрипты.

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

    С чего начинать писать скрипты?

    Во-первых, разберемся, что такое вообще скрипт?
    Скрипт - это сценарий (диалог, макрокоманда) .

    Сценарий включает всё: и задание входных и выходных параметров, выполнения действия (диалог), просмотр информации в цифровом и графическом видах, звуковое и видео-сопровождение, объединенные одним словом – в мультимедиа и т.д.

    Как создавать скрипты?

    Существует множество программ, с помощью которых можно писать скрипты, причем они с одним общим свойством - они пишутся для Интернета. Работа же с Интернетом (просмотр Web-страниц и т.д) осуществляется броузером - программой, пригодной для просмотра HTML-файлов. Таких программ много, но самая распространенная Microsoft Internet Explorer - она стоит на каждом компьютере и поэтому о других начинающему знать не надо. Другое важное свойство броузеров, что они могут не только просмотреть HTML-файлы, но и производить их отладку, причем не в Интернете, а локально за компьютером, не подключенном к Интернет.

    Самая простая страница (считай самый простой скрипт) создается помощью система HTML, которая есть не что иное, как основанная на тексте, кодовая система, используемая для того, чтобы сообщить броузеру (в нашем случае Internet Explorer) каким образом следует отображать информацию. Есть много готовых систем, позволяющих создавать HTML-файлы, в которые пользователю, в принципе, не надо и влезать. Однако, чтобы работать с JavaSсript - где без написание сценариев уже не обойтись - умение работать с текстом, созданием таблиц, размещением в них других таблиц, входных и выходных переменных, формирование кнопок "Выполнить", "Изобразить" и т.д. - знание элементарных кодов HTML и элементарное умение работать с ними необходимо. При изучение для этого, в принципе, достаточно одного урока – потом используйте Help .

    Однако для написания же полноценных скриптов, требуется что-то еще.
    И этим «что-то» еще является полноценная программа написания скриптов JavaScript , без которой невозможно создать скрипт (считай- и Web-страницу). Здесь уже необходимы знаниям и умения по всей программе. Написано огромное множество скриптов, к сожалению все они для Web -страниц в чистом виде, и почти нет для инженерных, художественно-творческих и тем более бытовых.
    Правда, готовые скрипты можно использовать и в качестве шаблонов, или какой-то части вашего скрипта, но все это требует корректировки, на которую уйдет больше времени, чем на написание нового скрипта.
    Изучение JavaSript является не сложным делом и даже начинающие программисты смогут объединить вместе несколько сценариев, способных поразить не только друзей, но и вас самих.

    Графика

    Можно было бы не ставить вопрос о том, как научиться писать скрипты. В Интернете
    и на прилавках магазинов представлено огромное количество книг, пособий и программ, CD-дисков - если бы не их слабое место - там нет (или почти нет) возможности работать с векторной графикой!
    Причина в том, что векторная графика с одной стороны еще не под силу Интернету, а с другой - прикладные программы с векторной графикой ориентированы на профессиональные задачи проектирования и изготовления, еще не решают задачи, которые ставит Интернет и, в частности, скрипт-программирования.
    Продолжение следует…

    В буквальном переводе слово script означает «сценарий», то есть описание последовательности действий, которые нужно совершить, чтобы выполнить определённую задачу. Применительно к интернет-программированию такими задачами могут быть, например, отображение часов на интернет-странице, реализация разнообразных визуальных эффектов с картинками и т.д. Да и показ в браузере самой страницы в современной сети тоже выполняется по заданному в скрипте сценарию. Давайте попробуем написать пару простейших скриптов, чтобы получить представление о том, что они собой представляют.
    Создать сайт самостоятельно с Wix.com

    Инструкция
  • В зависимости от того, где происходит исполнение сценария, скрипты делятся на «клиентские» и «серверные». Переходя по какому-то адресу в сети, мы отправляем URL интересующей страницы серверу, и тот запускает сценарий (скрипт), находящийся по указанному адресу. Скрипт, выполняя на сервере запрограммированные в нём действия, собирает страницу из нужных блоков и отправляет её браузеру. Это - серверный скрипт. Получив страницу, браузер на нашем компьютере визуализирует её для нас и, если в полученном коде страницы есть какой-то сценарий, то уже он занимается исполнением этого скрипта. Это - клиентский скрипт.
  • Чтобы сервер или браузер могли прочесть, понять и исполнить сценарий он должен быть составлен и записан по известным им правилам. Такие наборы правил называют скриптовыми языками программирования. Большинство серверных сценариев в настоящее время пишутся на языке PHP, а большинство клиентских - на языке JavaScript. Чтобы самому написать скрипт достаточно иметь обычный текстовый редактор – блокнот. Но для постоянного программирования скриптов не обойтись без специализированного редактора. Такой редактор берёт на себя львиную долю рутинной работы по написанию скриптов, оставляя программисту больше времени для творчества.

    Давайте напишем простой скрипт на серверном языке PHP. Первой строкой надо сообщить исполнителю, что с этого места начинается сценарий. На языке PHP этот открывающий тег выглядит так:Между этими двумя тегами находятся инструкции - операторы языка. Например, инструкция напечатать надпись, оставленную О. Бендером на Кавказских скалах, пишется так:echo ("Здесь были Кися и Ося");А инструкция показать текущее время в формате ЧАС:МИНУТА пишется так:echo date("H:i");Полностью PHP-скрипт, составленный из этих операторов, будет выглядеть так:echo date("H:i");

    echo (" здесь были Кися и Ося!");?>После выполнения этого скрипта серверной программой-исполнителем (интерпретатором языка) страничка бы выглядела так:

  • А этот же сценарий на клиентском языке JavaScript будет выглядеть так:var now = new date();
  • document.write ("В ");

    document.write (now.getHours() + ":" + now.getMinutes());

    document.write (" здесь были Кися и Ося!");Здесь строка var now = new date() отдаёт исполнителю сценария команду создать новый виртуальный объект с именем "now", который представляет собой текущую дату и время. document.write() – это команда написать в странице то, что указано в скобках, а команды now.getHours() и now.getMinutes() предписывают извлечь из объекта “now” текущие час и минуту.

    Осталось для большей наглядности объединить эти два скрипта в один файл, сохранить его на сервере и набрать URL в адресной строке браузера. В результате увидим одинаковые строки, одна из которых была выполнена по нашему сценарию на сервере (интерпретатором PHP), а другая - в нашем компьютере (интерпретатором JavaScript).

    Пишем скрипты в Linux (обучение на примерах)

    ———————————————————————————-

    1. Введение

    Что нужно, чтобы писать скрипты
    Владение инструментами командной строки и их необходимыми опциями.
    Базовые знания английского языка уровня начальной школы не помешают.

    Зачем нужны скрипты
    Во-первых, администрирование linux-сервера в той или иной степени сводится к систематическому выполнению одних и тех же команд. Причем не обязательно, чтобы эти команды выполнял человек. Их можно запрограммировать на выполнение машиной.
    Во-вторых, даже просто выполнение обычной задачи, которая (вдруг) составляет 20-1000… однообразных операций ГОРАЗДО проще реализовать в скрипте.

    Что такое скрипт
    Скрипт — набор инструкций, которые должен в определенном порядке и в определенное время выполнить компьютер. Инструкциями могут быть как внутренние команды оболочки (циклы, условия, обработка текстовой информации, работа с переменными окружения и прочее), так и любая программа, выполняемая нами в консоли с необходимыми параметрами.

    Как писать скрипт
    В нашем случае скрипт будет представлять из себя текстовый файл с атрибутами выполнения. Если файл сценария начинается с последовательности #!, которая в мире UNIX называется sha-bang, то это указывает системе какой интерпретатор следует использовать для исполнения сценария. Если это трудно понять, то просто запомните, что все скрипты мы будем начинать писать именно со строчки #!/bin/bash или #!/bin/sh, а далее пойдут команды и комментарии к ним.

    Напутствие
    Я Вам искренне советую писать как можно больше комментариев чуть ли ни к каждой строчке в скрипте. Пройдет время и Вам понадобится изменить или модернизировать написанный когда-то скрипт. Если не помнишь или не понимаешь, что написано в скрипте, то становится сложно его изменять, проще писать с нуля.

    Какие скрипты могут нам понадобиться:

      устанавливающий правила файервола при загрузке системы.
      выполняющий backup настроек и данных.
      добавляющий почтовые ящики в почтовый сервер (точнее в базу mysql)
      запускающий в определенное время (лучше каждую ночь) программу, которая сканирует логи прокси-сервера и выдает удобный web-отчет по количеству скачанного трафика.
      отправляющий нам на почту информацию о том, что кто-то получил доступ к нашему серверу по ssh, время подключения и адрес клиента.

    О методике написания скриптов
    Создаем текстовый файл, редактируем его, устанавливаем права на выполнение, запускаем, смотрим ошибки, исправляем, запускаем, смотрим ошибки…
    Когда все вылизано и работает правильно, ставим его в автозагрузку либо в планировщик на определенное время.

    ———————————————————————————-

    2. Обучение написанию сценариев на внутреннем языке BASH
    оригинал: https://www.linuxconfig.org/Bash_scripting_Tutorial

    Это руководство предполагает отсутствие предварительных знаний о методике написания сценариев (далее скриптов) с помощью внутреннего языка Bash. С помощью данного руководства вы обнаружите в скором времени, что написание скриптов очень простая задача. Давайте начнем наше обучение с простого сценария, выполняющего вывод строки «Hello World!» (в перев. с англ. — Всем привет!)

    1. Сценарий «Всем привет»
    Вот ваш первый пример bash-скрипта:

    #!/bin/bash
    echo «Hello World»

    Переходим в директорию, содержащую наш файл hello_world.sh и делаем его исполняемым:

    Код: Выделить всё $ chmod +x hello_world.sh

    Запускаем скрипт на выполнение

    Код: Выделить всё $ ./hello_world.sh

    2. Простой архивирующий bash-скрипт

    #!/bin/bash
    tar -czf myhome_directory.tar.gz /home/user

    Код: Выделить всё $ ./backup.sh

    $ du -sh myhome_directory.tar.gz
    41M myhome_directory.tar.gz

    3. Работа с переменными
    В данном примере мы объявляем простую переменную и выводим её на экран с помощью команды echo

    #!/bin/bash
    STRING=»HELLO WORLD!!!»
    echo $STRING

    Код: Выделить всё $ ./hello_world.sh
    HELLO WORLD!!!

    Наш архивирующий скрипт с переменными:

    #!/bin/bash
    OF=myhome_directory_$(date +%Y%m%d).tar.gz
    IF=/home/user
    tar -czf $OF $IF

    Код: Выделить всё $ ./backup.sh
    tar: Removing leading "\" from member names
    $ du -sh *tar.gz
    41M myhome_directory_20100123.tar.gz

    3.1 Глобальные и локальные переменные

    #!/bin/bash
    # Объявляем глобальную переменную
    # Такая переменная может использоваться в любом месте этого скрипта
    VAR=»global variable»
    function bash {
    # Объявляем локальную переменную
    # Такая переменная действительна только для функции, в которой её объявили
    local VAR=»local variable»
    echo $VAR
    }
    echo $VAR
    bash
    # Обратите внимание, что глобальная переменная не изменилась
    echo $VAR

    Код: Выделить всё $ ./variables.sh
    global variable
    local variable
    global variable

    4. Передаем аргументы в скрипт

    #!/bin/bash
    # Используйте предопределенные переменные для доступа к аргументам
    # Выводим аргументы на экран
    echo $1 $2 $3 ‘ -> echo $1 $2 $3’

    #Мы так же можем получить доступ к аргументам через специальный массив args=(«$@»)
    # Выводим аргументы на экран
    echo ${args} ${args} ${args} ‘ -> args=(«$@»); echo ${args} ${args} ${args}’

    # Используйте переменную $@ для вывода всех аргументов сразу
    echo $@ ‘ -> echo $@’

    Используйте переменную $# для вывода количества переданный в скрипт аргументов
    echo Number of arguments passed: $# ‘ -> echo Number of arguments passed: $#’

    Код: Выделить всё $ ./arguments.sh Bash Scripting Tutorial
    Bash Scripting Tutorial -> echo $1 $2 $3
    Bash Scripting Tutorial -> args=("$@"); echo ${args} ${args} ${args}
    Bash Scripting Tutorial -> echo $@
    Number of arguments passed: 3 -> echo Number of arguments passed: $#

    5. Выполнение в скрипте команд оболочки

    #!/bin/bash
    # используйте обратные кавычки » ` ` » для выполнения команды оболочки
    echo `uname -o`
    # теперь попробуем без кавычек
    echo uname -o

    Код: Выделить всё $ uname -o
    GNU/Linux
    $ ./bash_backtricks.sh
    GNU/Linux
    uname -o

    Как видим, во втором случае вывелась сама команда, а не результат её выполнения

    6. Читаем пользовательский ввод (интерактивность)

    #!/bin/bash
    echo -e «Hi, please type the word: \c »
    read word
    echo «The word you entered is: $word»
    echo -e «Can you please enter two words? »
    read word1 word2
    echo «Here is your input: \»$word1\» \»$word2\»»
    echo -e «How do you feel about bash scripting? »
    # read command now stores a reply into the default build-in variable $REPLY
    read
    echo «You said $REPLY, I’m glad to hear that! »
    echo -e «What are your favorite colours ? »
    # -a makes read command to read into an array
    read -a colours
    echo «My favorite colours are also ${colours}, ${colours} and ${colours}:-)»

    Код: Выделить всё $ ./read.sh
    Hi, please type the word: something
    The word you entered is: something
    Can you please enter two words?
    Debian Linux
    Here is your input: "Debian" "Linux"
    How do you feel about bash scripting?
    good
    You said good, I"m glad to hear that!
    What are your favorite colours ?
    blue green black
    My favorite colours are also blue, green and black:-)

    7. Использование ловушки

    #!/bin/bash
    # объявляем ловушку
    trap bashtrap INT
    # очищаем экран
    clear;
    # функция ловушки выполняется, когда пользователь нажимает CTRL-C:
    # На экран будет выводиться => Executing bash trap subrutine !
    # но скрипт будет продолжать выполняться
    bashtrap()
    {
    echo «CTRL+C Detected !…executing bash trap !»
    }
    # скрипт будет считать до 10
    for a in `seq 1 10`; do
    echo «$a/10 to Exit.»
    sleep 1;
    done
    echo «Exit Bash Trap Example!!!»

    Код: Выделить всё $ ./trap.sh
    1/10
    2/10
    3/10
    4/10
    5/10
    6/10

    7/10
    8/10
    9/10
    CTRL+C Detected !...executing bash trap !
    10/10
    Exit Bash Trap Example!!!

    Как видим, сочетание клавишь Ctrl-C не остановило выполнение скрипта.

    8. Массивы
    8.1 Объявляем простой массив

    #!/bin/bash
    # Объявляем простой массив с 4 элементами
    ARRAY=(‘Debian Linux’ ‘Redhat Linux’ Ubuntu Linux)
    # Получаем количество элементов в массиве
    ELEMENTS=${#ARRAY[@]}

    # выводим в цикле каждый элемент массива
    for ((i=0;i