Как начинающий сделал небольшую подборку bash команд, которые показались мне интересными и полезными при написании скриптов. Сразу оговорюсь, что по всем командам можно получить развернутый хелп командой man ################################################################# Использование команды banner <Слово для вывода знаками #> -- полезно для вывода названия сценария. Чтобы использовать нужно установить пакет sysvbanner date – вывод даты и времени в определенном формате. echo “HelloWorld!” – выводит текстовую строку sleep число – приостановить сценарии на количество секунд равное числу, после числа можно использовать суффиксы m, h или d соответственно минуты, часы и дни. tee–a <имя файла> -- перенаправляет ввод с клавиатуры в файл. –a используется для того, чтобы файл не был перезаписан. true – успешное завершение, возвращает 0, если сценарий успешно завершен. yes – возвращает Y и символ новой строки, как будто пользователь ввел Y и нажал <Enter>, пример yes | apt-getinstallmc cmp файл1 файл2 – сравнение двух файлов как бинарных, так и текстовых grep – текстовый фильтр less – постраничный вывод | less можно еще использовать | more head и tail – вывод начала и хвоста файла, например, tail –f file.log - вывести последние строки файла логов ifconfig – настройка сетевого интерфейса wget – загрузка файлов
Простейший сценарий: #!/bin/bash echo “Hello, World!” # это комментарий, после решетки пробел обязательно Сохраняем сценарий под именем hello и выполняем chmod +x hello. Запускаем сценарий командой ./hello
Пример объявления переменной: ADDRESS=www.radiotech.kz echo $ADDRESS при объявлении переменной не должно быть пробелов до и после знака = Значение для переменной указывать вручную не обязательно — его можно прочитать с клавиатуры: read ADDRESS ADDRESS=’hostname’ В Linux часто используются переменные окружения. Это специальные переменные, содержащие служебные данные. Вот примеры некоторых часто используемых переменных окружения: BASH — полный путь до исполняемого файла командной оболочки bssh ; BASH_VERSION — версия bash ; HOME — домашний каталог пользователя, который запустил сценарий; HOSTNAME — имя компьютера; RANDOM — случайное число в диапазоне от 0 до 32 767; OSTYPE — тип операционной системы; PWD — текущий каталог; PS1 — строка приглашения; UID — ID пользователя, который запустил сценарий; USER — имя пользователя. Для установки собственной переменной окружения используется команда export: # присваиваем переменной значение $ADDRESS=www.radiotech.kz # экспортируем переменную — делаем ее переменной окружения # после этого переменная ADDRESS будет доступна в других сценариях export $ADDRESS
Циклы Синтаксис цикла for выглядит так: for переменная in список do команды done В цикле при каждой итерации переменной будет присвоен очередной элемент списка, над которым будут выполнены указанные команды. Чтобы было понятнее, рассмотрим небольшой пример: for n in 1 2 3; do echo $n; done Обратите внимание: список значений и список команд должны заканчиваться точкой с запятой. Как и следовало ожидать, наш сценарий выведет на экран следующее: 1 2 3 Синтаксис цикла while выглядит немного иначе: while условие do команды done Цикл while выполняется до тех пор, пока истинно заданное условие. Подробно об условиях мы поговорим в следующем разделе, а сейчас напишем аналог предыдущего цикла, т. е. нам нужно вывести 1, 2 и 3, но с помощью while , а не for : n=1 while [ $n -lt 4 ] do echo "$n " n=$(( $n+1 )); done