КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 718922 томов
Объем библиотеки - 1436 Гб.
Всего авторов - 276099
Пользователей - 125326

Новое на форуме

Новое в блогах

Впечатления

kiyanyn про Деревянко: Что не так со структурой атомов? (Физика)

Первый признак псевдонаучного бреда на физмат темы - отсутствие формул (или наличие тривиальных, на уровне школьной арифметики) - имеется :)

Отсутствие ссылок на чужие работы - тоже.

Да эти все формальные критерии и ни к чему, и так видно, что автор в физике остановился на уровне учебника 6-7 класса. Даже на советскую "Детскую энциклопедию" не тянет.

Чего их всех так тянет именно в физику? писали б что-то юридически-экономическое

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
Влад и мир про Сомов: Пустой (СИ) (Боевая фантастика)

От его ГГ и писанины блевать хочется. Сам ГГ себя считает себя ниже плинтуса. ГГ - инвалид со скверным характером, стонущим и обвиняющий всех по любому поводу, труслив, любит подхалимничать и бить в спину. Его подобрали, привели в стаб и практически был на содержании. При нападений тварей на стаб, стал убивать охранников и знахаря. Оправдывает свои действия запущенным видом других, при этом точно так же не следит за собой и спит на

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
Влад и мир про Nezloi: Первый чемпион Земли 2 (Боевая фантастика)

Мне понравились обе книги.

Рейтинг: +1 ( 1 за, 0 против).
Влад и мир про ezh: Всадник Системы (Попаданцы)

Прочитал обе книги с удовольствием. Спасибо автору!

Рейтинг: +1 ( 1 за, 0 против).
Влад и мир про Ветров: ЩИТ ИМПЕРИИ – Альтернатива (Боевая фантастика)

Слог хороший, но действие ГГ на уровне детсада. ГГ -дурак дураком. Его квартиру ограбили, впустил явно преступников, сестру явно украли.
О преступниках явившихся под видом полиции не сообщает. Соглашается с полицией не писать заявление о пропаже сестры. Что есть запрет писать заявление ранее 3 дней? Мало ли, что кто-то не хочет работать, надо входить в их интерес? Есть прокуратура и т.д., что может заставить не желающих работать. Сестра не

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).

Bash-скрипты, руководство в 11 частях (fb2) читать постранично, страница - 2


 [Настройки текста]  [Cбросить фильтры]

пользователя:


#!/bin/bash

# display user home

echo "Home for the current user is: $HOME"

Обратите внимание на то, что мы можем использовать системную переменную $HOME в двойных кавычках, это не помешает системе её распознать. Вот что получится, если выполнить вышеприведённый сценарий.


Использование переменной среды в сценарии

А что если надо вывести на экран значок доллара? Попробуем так:

echo "I have $1 in my pocket"

Система обнаружит знак доллара в строке, ограниченной кавычками, и решит, что мы сослались на переменную. Скрипт попытается вывести на экран значение неопределённой переменной $1. Это не то, что нам нужно. Что делать?


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


echo "I have \$1 in my pocket"


Теперь сценарий выведет именно то, что ожидается.


Использование управляющей последовательности для вывода знака доллара

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


В дополнение к переменным среды, bash-скрипты позволяют задавать и использовать в сценарии собственные переменные. Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.


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


#!/bin/bash

# testing variables

grade=5

person="Adam"

echo "$person is a good boy, he is in grade $grade"


Вот что получится после запуска такого сценария.


Пользовательские переменные в сценарии

Подстановка команд


Одна из самых полезных возможностей bash-скриптов — это возможность извлекать информацию из вывода команд и назначать её переменным, что позволяет использовать эту информацию где угодно в файле сценария.


Сделать это можно двумя способами.


   • С помощью значка обратного апострофа «`»

   • С помощью конструкции $()


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


mydir=`pwd`

При втором подходе то же самое записывают так:


mydir=$(pwd)

А скрипт, в итоге, может выглядеть так:


#!/bin/bash

mydir=$(pwd)

echo $mydir

В ходе его работы вывод команды pwd будет сохранён в переменной mydir, содержимое которой, с помощью команды echo, попадёт в консоль.


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

Математические операции


Для выполнения математических операций в файле скрипта можно использовать конструкцию вида $((a+b)):


#!/bin/bash

var1=$(( 5 + 5 ))

echo $var1

var2=$(( $var1 * 2 ))

echo $var2


Математические операции в сценарии

Управляющая конструкция if-then


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


if команда

then

команды

fi

А вот рабочий пример:


#!/bin/bash

if pwd

then

echo "It works"

fi

В данном случае, если выполнение команды pwd завершится успешно, в консоль будет выведен текст «it works».


Воспользуемся имеющимися у нас знаниями и напишем более сложный сценарий. Скажем, надо найти некоего пользователя в /etc/passwd, и если найти его удалось, сообщить о том, что он существует.


#!/bin/bash

user=likegeeks

if grep $user /etc/passwd

then

echo "The user $user Exists"

fi

Вот что получается после запуска этого скрипта.


Поиск пользователя

Здесь мы воспользовались командой grep для поиска пользователя в файле /etc/passwd. Если команда grep вам незнакома, её описание можно найти здесь.


В этом примере, если пользователь найден, скрипт выведет соответствующее сообщение. А если найти пользователя не удалось? В данном случае скрипт просто завершит выполнение, ничего нам не сообщив. Хотелось бы, чтобы он сказал нам и об этом, поэтому усовершенствуем код.

Управляющая конструкция if-then-else


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


if команда

then

команды

else

команды

fi

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


Напишем такой скрипт:


#!/bin/bash

user=anotherUser

if grep $user /etc/passwd

then

echo "The user $user Exists"

else

echo "The user $user doesn’t