Основы написания сценариев оболочки BASH. Часть 2: Условные операторы

Привет, друг. Продолжаем изучать сценарии оболочки BASH. Сегодня разберемся как использовать условные операторы if, then, else.

В прошлом уроке мы написали простенький скрипт для анализа подсети утилитой nmap и вывода отфильтрованных результатов в отдельный файл. Прошлый урок здесь: КЛАЦ

Основы написания сценариев для начинающего хакера. Kali Linux. Часть 2

Теперь давай возьмём наш скрипт:

#!/bin/bash
echo "Enter subnet:"
read subnet
echo "Enter port:"
read port
nmap -p $port -sT $subnet -oG res
cat res |grep open >result
cat result

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

И начнем мы с вопроса пользователю, а ответ, как и ранее, поместим в переменную:

echo "What do you want to scan: subnet/ip"
read use

Условные операторы Bash

Теперь нам нужно описать, что должно происходить, когда пользователь вводит тот или иной ответ:

if [ "$use" = "subnet" ]; then

в квадратных скобках мы использовали оператор сравнения «=» т.е. мы сравнили ответ введенный пользователем, а именно переменную use со словом subnet и дали инструкцию: (if) если в переменной use записано subnet, (then) тогда выполнить код после then.

ПОМНИ:интерпретатор чувствителен к пробелам, если пропустишь пробелы — будет выводить ошибку

Теперь добавим наш скрипт сканирования подсети:

bash

Первая часть нашего скрипта готова, мы описали что нужно делать если пользователь ввёл subnet

Теперь нужно описать, что делать если пользователь введет ip. И нам на помощь приходит оператор else. С точки зрения интерпретатора, это работает так: если значение if — истинно (true), выполнить then, если значение if — лож (false), то выполнить else. Соответственно после введения оператора else мы описываем, что должно происходить во втором случае, если пользователь введёт ip:

else
echo "Enter IP:"
read IP
nmap -PE $IP -oN scan
cat scan

пошагово это можно описать так: мы попросили пользователя ввести IP который он хотел бы сканировать, передали введенные данные в переменную IP и запустили утилиту nmap с параметром PE (пингование с использованием ICMP эхо запросов), передав ей данные из переменной IP, а результаты вывели(-oN) в файл scan, после чего вывели (cat) содержимое файла scan на экран.

Если мы использовали условные операторы в своем скрипте, то завершить их использование мы должны строкой fi.

Итак, наш скрипт приобрел такой вид:

bash script

Можем сохранить и убедиться, что всё работает как надо.

В этом уроке мы научились использовать условные операторы if, then, else при написании сценариев оболочки Bash. Как видишь в этом нет ничего сложного, всё базируется на элементарной логике. Не забывай возвращаться к нам, ведь в следующих уроках мы продолжим совершенствовать свои навыки и постепенно будем переходить ко всё более продвинутым штукам.

Твой Pulse.