├── Archive └── archives.sh ├── ArithmeticOperations └── arithmetic.sh ├── Arrays └── array.sh ├── Introduction ├── arguments.sh ├── login.sh └── reading.sh ├── Loops ├── forloop.sh ├── selectloop.sh └── whileloop.sh ├── README.md └── Statements ├── case_calculator.sh ├── iffi_calculator.sh ├── iffi_checkfiles.sh └── iffi_login.sh /Archive/archives.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Lutfen yapmak istediginiz islemi seciniz: " 4 | 5 | echo "Klasordeki dosyalari sikistirmak icin 1 e" 6 | echo "Klasordeki dosyalari arsivlemek icin 2 ye" 7 | echo "Klasordeki dosyalari sikistirip arsivlemek icin 3 e" 8 | echo "Klasordeki sikistirilmis dosyalari acmak icin 4 e" 9 | echo "Klasordeki arsivlenmis dosyalari acmak icin 5 e" 10 | echo "Klasordeki sikistirilip arsivlenmis dosyalari acmak icin 6 ya basiniz" 11 | 12 | read -p 'Lutfen islem numarasi giriniz: ' islem 13 | 14 | case $islem in 15 | 1 ) 16 | gzip *[!g][!z];; 17 | 2 ) 18 | tar -cf arsivle.tar *[!t][!a][!r];; 19 | 3 ) 20 | tar -czvf arsivle.tar.gz *[!t][!a][!r][!.][!g][!z];; 21 | 4 ) 22 | gzip -d *;; 23 | 5 ) 24 | tar -xf arsivle.tar;; 25 | 6 ) 26 | tar -xzvf arsivle.tar.gz;; 27 | esac 28 | -------------------------------------------------------------------------------- /ArithmeticOperations/arithmetic.sh: -------------------------------------------------------------------------------- 1 | sayi1=15 2 | sayi2=3 3 | 4 | echo "Toplam: " $(( sayi1+sayi2 )) 5 | echo "Fark: " $(( sayi1-sayi2 )) 6 | echo "Carpim: " $(( sayi1*sayi2 )) 7 | echo "Bolum: " $(( sayi1/sayi2 )) 8 | echo "Mod: " $(( sayi1%sayi2 )) 9 | 10 | echo $( expr $sayi1 + $sayi2 ) 11 | echo $( expr $sayi1 - $sayi2 ) 12 | echo $( expr $sayi1 \* $sayi2 ) #Expr kullaniminda * karakterini kacis karakteri ile beraber kullanmaliyiz... 13 | echo $( expr $sayi1 / $sayi2 ) 14 | echo $( expr $sayi1 % $sayi2 ) 15 | -------------------------------------------------------------------------------- /Arrays/array.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | OS=( 'Linux' 'Windows' 'Unix' ) 4 | 5 | echo "${OS[@]}" 6 | echo -e "\n${OS[*]}" 7 | echo -e "\n${OS[0]}" 8 | echo -e "\n${!OS[@]} Eleman indeksleri" 9 | echo -e "\n${#OS[@]} eleman sayisi" 10 | 11 | OS[3]='Mac' 12 | 13 | echo -e "\n${OS[@]}" 14 | 15 | unset OS[2] 16 | 17 | echo -e "\n${OS[@]}" 18 | 19 | echo -e "\n${!OS[@]}" 20 | -------------------------------------------------------------------------------- /Introduction/arguments.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo $0 $1 $2 $3 # '$0' ifadesi calistirilan scriptin adini ve '$1' ve kalan ifadeler ise girilen argumanlari temsil eder 4 | 5 | echo $@ #girilen butun argumanlari temsil eder 6 | 7 | echo $# #girilen arguman sayisini temsil eder 8 | 9 | echo $* #girilen argumanlari hepsini cikti olarak verir 10 | 11 | dizi=("$@") #Burada '$*' kullanamazdik cunku '$@' ifadesi girilen argumanlari dizi olarak tutar ve indeksler 12 | 13 | echo "${dizi[0]},${dizi[1]},${dizi[2]}" 14 | -------------------------------------------------------------------------------- /Introduction/login.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | read -p "Kullanici Adi: " usrnme # -p parametresi ve yanina verecegimiz string ifade ile kullanicidan ayni satirda giris aliriz 4 | read -sp "Sifre: " passwrds #Buradaki -s parametresi (silent) yapilan girisi gizler(susturur) 5 | 6 | echo "$usrnme -- $passwrds" 7 | 8 | -------------------------------------------------------------------------------- /Introduction/reading.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | read -a girisler # -a giris olarak bir dizi arguman alabilmemizi saglayan parametre 4 | 5 | echo "Girisler: ${girisler[0]},${girisler[1]},${girisler[2]}" 6 | 7 | -------------------------------------------------------------------------------- /Loops/forloop.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo -e "\t---- Girilen Sayiya Kadar Toplam Bulma ----\n" 4 | 5 | read -p 'Sayi Giriniz: ' sayi 6 | sayi2=0 7 | for (( i=1;i<$sayi;i++ )) 8 | do 9 | (( sayi2 += i )) 10 | done 11 | echo $sayi2 12 | -------------------------------------------------------------------------------- /Loops/selectloop.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo -e "\t\t-------Hesap Makinesi-------\n" 4 | 5 | echo -e "Islem yapmak icin 2 sayi giriniz\n" 6 | read -p "Birinci Sayi: " sayi1 7 | read -p "Ikinci Sayi: " sayi2 8 | echo 9 | 10 | select islem in Toplama Cikarma Carpma Bolme YenidenBaslat Cikis 11 | do 12 | case $islem in 13 | YenidenBaslat ) 14 | ./selectloop.sh;; 15 | Toplama ) 16 | echo "Toplama islemi: $(( sayi1 + sayi2 ))";; 17 | Cikarma ) 18 | echo "Cikarma islemi: $(( sayi1 - sayi2 ))";; 19 | Carpma ) 20 | echo "Carpma islemi: $(( sayi1 * sayi2 ))";; 21 | Bolme ) 22 | echo "Bolme islemi: $(( sayi1 / sayi2 ))";; 23 | Cikis ) 24 | exit 0;; 25 | * ) 26 | echo "Yanlis giris yaptiniz.";; 27 | esac 28 | done 29 | -------------------------------------------------------------------------------- /Loops/whileloop.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | i=1 4 | 5 | while [ $i -le 3 ] 6 | do 7 | echo $i 8 | ((i++)) 9 | sleep 1 10 | #gnome-terminal // terminal penceresi acar 11 | done 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BashScriptsStudies 2 | Lisans dönemi Sistem Programlama dersim için yapmış olduğum script çalışmalarım. Detaylı ve geniş bir içeriğe sahip olmasa da repodan yararlanabileceğini düşünen arkadaşlar için script dosyalarının içinde yapılan işlemler hakkında küçük notlar oluşturarak çalıştım. 3 | -------------------------------------------------------------------------------- /Statements/case_calculator.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo -e "\t\t-------Hesap Makinesi-------\n\n" 4 | 5 | echo -e "Islem yapmak icin 2 sayi giriniz:\n" 6 | 7 | read -p 'Birinci Sayi: ' sayi1 8 | read -p 'Ikıncı Sayi: ' sayi2 9 | echo 10 | echo "Toplama icin --> 1" 11 | echo "Cikarma icin --> 2" 12 | echo "Carpma icin --> 3" 13 | echo -e "Bolme icin --> 4\n" 14 | 15 | read -p 'Islem No: ' islem 16 | echo 17 | case $islem in 18 | 1 ) 19 | echo "Toplam: $(( sayi1 + sayi2 ))";; 20 | 2 ) 21 | echo "Fark: $(( sayi1 - sayi2 ))";; 22 | 3 ) 23 | echo "Carpim: $(( sayi1 * sayi2 ))";; 24 | 4 ) 25 | echo "Bolum: $(( sayi1 / sayi2 ))";; 26 | * ) 27 | echo "Yanlis islem girisi yaptiniz." 28 | ./$0;; 29 | esac 30 | -------------------------------------------------------------------------------- /Statements/iffi_calculator.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "-------Hesap Makinesi-------" 4 | 5 | echo "Lutfen islem yapmak icin 2 sayi giriniz" 6 | read -p 'Birinci sayi: ' sayi1 7 | read -p 'Ikinci sayi: ' sayi2 8 | 9 | read -p "Toplama icin 1 <-> Cikarma icin 2 <-> Carpma icin 3 <-> Bolme icin 4 tusuna basiniz: " islem 10 | 11 | if [ $islem -eq 1 ] 12 | then 13 | echo "$(( sayi1 + sayi2 ))" 14 | elif [ $islem -eq 2 ] 15 | then 16 | echo "$(( sayi1 - sayi2 ))" 17 | elif [ $islem -eq 3 ] 18 | then 19 | echo "$(( sayi1 * sayi2 ))" 20 | elif [ $islem -eq 4 ] 21 | then 22 | echo "$(( sayi1 / sayi2 ))" 23 | else 24 | echo "Yanlis giris yaptiniz" 25 | fi 26 | -------------------------------------------------------------------------------- /Statements/iffi_checkfiles.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo -e "Dosyanin ismini giriniz:\c" 4 | read dosyaismi 5 | 6 | if [ -e $dosyaismi ] 7 | then 8 | if [ -d $dosyaismi ] 9 | then 10 | echo "$dosyaismi bir klasordur" 11 | else 12 | echo "$dosyaismi bir dosyadir" 13 | if [ -w $dosyaismi ] 14 | then 15 | echo "Dosyaya eklemek icin giris yapiniz. Cikmak icin CTRL+D" 16 | cat >> $dosyaismi 17 | else 18 | echo "Dosya yazilabilir degildir." 19 | fi 20 | fi 21 | else 22 | echo "$dosyaismi mevcut degildir" 23 | fi 24 | -------------------------------------------------------------------------------- /Statements/iffi_login.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | usrname=Osman #usrname adli degiskene kullanici adi atadik 4 | 5 | pssword=FDSA #pssword adli degiskene sifremizi temsil edecek bir ifade atadik 6 | 7 | read -p 'Kullanici Adi: ' unameinput #Kullanici adi icin giris aldik 8 | read -sp 'Sifre: ' psswdinput #Kullanici sifresi icin giris aldik 9 | 10 | if [ $usrname == $unameinput ] 11 | then 12 | if [ $pssword == $psswdinput ] 13 | then 14 | echo "Hosgeldiniz" 15 | else 16 | echo "Parola Yanlis Girildi" 17 | fi 18 | else 19 | echo "Sistemde Boyle Bir Kullanici Yok" 20 | fi 21 | 22 | --------------------------------------------------------------------------------