Студопедия — Написание bash-скриптов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Написание bash-скриптов






Shell - это командная оболочка. Но это не просто промежуточное звено между пользователем и операционой системой, это еще и мощный язык программирования. Программы на языке shell называют сценариями, или скриптами. Фактически, из скриптов доступен полный набор команд, утилит и программ UNIX. Если этого недостаточно, то есть внутренние команды shell - условные операторы, операторы циклов и пр.

В начале написания имеется необходимость явно указать интерпретатору команд директорию, из которой Bash будет вызван при запуске скрипта и сам его "загрузчик". Для этого наберем следующую команду в терминале:

user@localhost:~$ which bash /bin/bash

Каждый файл сценария начинается с последовательности #!, это указывает системе, какой интерпретатор следует использовать для исполнения сценария. Это двухбайтовая последовательность, или - специальный маркер, определяющий тип сценария. Более точно, он определяет интерпретатор, который вызывается для исполнения сценария, это может быть командная оболочка (shell), иной интерпретатор или утилита.

#!/bin/sh

#!/bin/bash

#!/usr/bin/perl

#!/usr/bin/tcl

#!/bin/sed -f

#!/usr/awk -f

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

Для примера создадим скрипт с именем example.sh следующего содержания (после символа # пишутся комментарии)

#!/bin/bash # объявляем переменную STRING STRING="Program work!" # вывод на экран echo $STRING

При объявлении переменной знак $ перед ее обозначением не ставится.

Скрипт готов, теперь необходимо его запустить. Переходим в директорию, в которой был создан наш example.sh и сделаем файл исполняемым (иначе скрипт не сможет запуститься!):

$ chmod +x example.sh

Права записываются сразу для трёх типов пользователей: владельца-пользователя файла, пользователей, входящих в группу-владелец и для прочих пользователей. Аргумент команды chmod, задающий разрешения, может быть записан в двух форматах: в числовом и в символьном.

Для понимания сути задания прав в Unix-like системах, нужно знать представление чисел в восьмеричной и двоичной системах счисления

пользователь группа остальные
     
     
rwx r-x r-x
u g o

Пример символьной записи: 'rwxr-xr-x'.

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

§ 400 — владелец имеет право на чтение;

§ 200 — владелец имеет право на запись;

§ 100 — владелец имеет право на выполнение;

§ 40 — группа имеет право на чтение;

§ 20 — группа имеет право на запись;

§ 10 — группа имеет право на выполнение;

§ 4 — остальные имеют право на чтение;

§ 2 — остальные имеют право на запись;

§ 1 — остальные имеют право на выполнение.

Суммировав эти коды можно получить символьную запись. Например, chmod 444 {имя файла}: 400+40+4=444 — все имеют право только на чтение.

Помимо стандартных 'rwx' значений команда CHMOD осуществляет ещё управление битами SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно.

Для SUID — вес 4000, а для SGID — 2000.

Пример chmod 4555 {имя файла} — все имеют право на чтение и выполнение, но запускаться файл на исполнение будет с правами владельца. Для директории: установка SGID приведёт к установке принадлежности каждого нового создаваемого файла к той же группе, к которой принадлежит сама директория, а не к основной группе владельца, как это происходит по умолчанию. SUID для директории не имеет смысла.

t-бит используется с директориями. Когда t-бит для директории не установлен, файл в данной директории может удалить любой пользователь, имеющий доступ на запись к данному файлу. Устанавливая t-бит на директорию, мы меняем это правило таким образом, что удалить файл может только владелец этого файла. Следуя приведённой выше кодировке, t-бит имеет вес 1000.

Команда > перезаписывает файл, команда >> добавляет информацию в конец файла.

Сохраним значение переменной в файл. Для этого создадим файл

>data.txt

Запишем в него

echo $STRING >> data.txt

В данном случае в конец файла добавляем содержимое переменной $STRING.

Отобразить содержимое файла можно следующим образом

cat data.txt

 







Дата добавления: 2015-08-11; просмотров: 320. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

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

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия