Salam hər vaxtınız xeyir dəyərli oxucular bugün Bash Dili Seriyasında Bash dilində dövrlər haqqında məlumat əldə edəcəyik.Dövrlərin tətbiqini praktiki olaraq skript üzərində yerinə yetirəcəyik.
Dövrlər
Dövrlərin yazılması iki növdə yerinə yetirilə bilər: birinci while istifadə etməklə ikincisi isə for-dan tətbiqi ilə.Bir çox proqramlaşdırma dillərində şablon olaraq eyni dövr kommandalarından istifadə olunur.Deməli əgər siz Bash dilində dövlərin necə işlədyini bilsəniz eynilə Python proqramlaşdırma dilindədə bunun konsepsiyasını başa düşəcəksiniz.
While
İndi isə while dövrü ilə başlayaq.İstifadə üçün şablonu aşağıdakı kimidir:
while [[]]
do
təkrarlanacaq kommandalar
done
Dövləri başa düşməyin asan yolu 1-dən 10-a qədər sayan sayğac skriptindən istifadə etməkdir.Skript aşağıdakı kimi olacaqdır.
#!/bin/bash
#while ile saygac
#saygac
COUNTER=1
#Skala
BAR="#####################"
while [[ $COUNTER -lt 15 ]]
do
#skala esasen cap etmek
echo -ne "\r${BAR:0:COUNTER}"
#bir saniye gozleyirik
sleep 0.5
#Saygaci bir vahid artiraq
COUNTER=$(( $COUNTER + 1 ))
done
Diqqət etsəniz [[ $COUNTER -lt 15 ]] şərti eləcədə if şərt kommandasındakı kimi eyni qaydalara riayyət edir.Biz sayğacın 15 də dayanmasını istəsək, onda $COUNTER -lt 15 kommandasından istifadə edəcəyik.
For
for şərt kommandasının şablonu aşağıdakı kimidir.
for .... in (element siyahısı)
do
her hansı kommanda
done
Yenədə daha yaxşı başa düşmək üçün praktiki olaraq əvvəl istifadə etdiyimiz nümunə üzərindən hərəkət edəcəyik.Bununla biz başa düşəcəyikki for dövlərin icrasında daha ətraflı üsullar təqdim edir.Burada biz sayğacdan istifadə etməyəcəyik bunu özü yerinə yetirəcək.
#!/bin/bash
#Skala for dovru ile
#Skala
BAR="############"
for COUNTER in {1..10}
do
echo -ne "\r${BAR:0:$COUNTER}"
#bir saniye gozleyek
sleep 1
done
Bundan əlavə olaraq for dövrü ilə nmap proqramı birlikdə istifadə edərək faylların tərkibinin necə istifadə olunacağını öyrənək və tətbiq edək.Deməli əvvəlki paylaşımlarda istifadə etdyimiz nmap ping ataraq hostun aktiv yoxsa deaktiv olduğunu öyrənək və aktivdirsə DNS adını ekrana yazdıraq.Amma burda verəcəyimiz ip ünvani bir deyil bir fayl tərkibində çoxlu olacaqdır.
#!/bin/bash
read -p "IP adressler olan fayl yolunu gosterin: " FILE_PATH_NAME
function check_host(){
#Ip adress bos deyilse
if [[ -n $IP_ADDRESS ]]
then
ping_cmd=$(nmap -sn $IP_ADDRESS | grep 'Host is up' | cut -d '(' -f 1)
echo '------------------------------------------------------------'
if [[ -z $ping_cmd ]]
then
printf "$IP_ADDRESS deaktivdir\n"
else
printf "$IP_ADDRESS aktivdir\n"
dns_name
fi
fi
}
function dns_name(){
dns_name=$(host $IP_ADDRESS)
printf "$dns_name\n"
}
for ip in $(cat $FILE_PATH_NAME)
do
IP_ADDRESS=$ip
check_host
done
Nəticəsi olaraq :
┌──(root㉿kali)-[~/Desktop]
└─# ./roserecon.sh
IP adressler olan fayl yolunu gosterin: ips.txt
------------------------------------------------------------
192.168.10.1 aktivdir
------------------------------------------------------------
192.168.10.13 deaktivdir
------------------------------------------------------------
192.168.10.33 deaktivdir
------------------------------------------------------------
192.168.10.44 deaktivdir
Ümidvaram faydalı olmuşdur.Oxuduğunuz üçün təşəkkürlər!!
Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Telegram (Qrup): https://t.me/xakerazchat