[Bash] Moje skrypty :)

Miejsce, w którym użytkownicy forum mogą zaprezentować swoje własne projekty programistyczne.
Awatar użytkownika
sQrtek
Sędziwy Jeż
Sędziwy Jeż
Posty: 99
Rejestracja: 13 lut 2010, 11:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

[Bash] Moje skrypty :)

Post autor: sQrtek »

Postanowiłem się podzielić z wami "twórczością" skryptową, i zamieszczam tutaj kilka skryptów, dawno ich nie testowałem, więc nie wiem czy dobrze działają czy nie.. w sumie wypadałoby znowu coś nowego stworzyć, ale z powodu czasu maturalnego.. trzeba czytać lektury :x

1. Konwersja liczb ( nie wiem jak to nazwać :D )

Kod: Zaznacz cały

#!/bin/bash
#
#autor: Sebastian R aka sQrtek
#
# Program przelicza liczby w różnych systemach liczbowych
# All rights reserved by Sebastian R        
#
d=t
while [ "$d" = "t" ]; do
clear
echo -n "Podaj liczbę do konwertowania : "
read liczba
echo -n  "W jakim Systemie liczbowym podales liczbę? : "
read poczatek
echo -n "Na jaki System Liczbowy chcesz skonwertowac liczbę? : "
read koncowy

echo -n "Liczba po konwersji: "
echo  "obase=$koncowy; ibase=$poczatek; $liczba"|bc

echo -n "Czy chcesz wykonac jeszcze jakies przeliczenie? [ t/n ]: "
read d
done
echo "Program zostal zakonczony."
exit 0
2. Konfigurator Karty Sieciowej Ubuntu ( W źródle należy podmienić kilka linijek z ścieżką dostępu do odpowiednich plików aby działało prawidłowo, dla mnie to był tylko skrypt taki testowy )

Kod: Zaznacz cały

#!/bin/bash
clear

echo "------------------------------------------------------"
echo "------------Konfigurator Karty sieciowej -------------"
echo "------------------------------------------------------"
echo
#autor: Sebastian R aka sQrtek
# Wszelkie prawa zastrzezone


function restart
{

echo
echo
echo -n "Czy chcesz wykonac teraz restart uslug sieciowych? [ t/n ] : "
read b

case "$b" in
"t" | "T" | "Tak" | "tak") sudo /etc/init.d/networking restart ;;
"n" | "N" | "Nie" | "nie") echo "Restart nie zostal wykonany." ;;
*) echo "Wybrales niewlasciwa opcje !"

esac
}


function wybor
{
echo
echo "Wybrales Konfiguracje Adresów DNS !"
echo 
echo "1. Konfiguracja za pomocą Programu - gedit: "
echo "2. Konfiguracja Manualna za pomoca Terminala: "
echo
echo  -n "Wybieram Metode Konfiguracji nr. : "
read a

case "$a" in 

"1") dns1 ;;
"2") dns2  ;;
*) echo "Wybrales nieprawidlowa opcje !"

esac

}

function wybor2
{
echo
echo "Wybrales Konfiguracje Adresów IP Twojej Karty  !"
echo 
echo "1. Konfiguracja za pomocą Programu - gedit: "
echo "2. Konfiguracja Manualna za pomoca Terminala: "
echo
echo  -n "Wybieram Metode Konfiguracji nr. : "
read a

case "$a" in 

"1") ip1 ;;
"2") ip2  ;;
*) echo "Wybrales nieprawidlowa opcje !"

esac

}


function ip1
{

gedit /etc/network/interfaces

restart

}

function ip2
{

echo -n "Podaj Numer urządzenia karty sieciowej np. [eth0] : "
read eth

echo -n "Podaj Adres IP : "
read adres

echo -n "Podaj Maske Sieci: "
read maska

echo -n "Podaj Adres Bramy: "
read gateway

echo -n "Podaj Adres Sieciowy: "
read network

echo "auto eth$eth" > /home/seba12/Pulpit/interfaces
echo "iface eth$eth inet static" >> /home/seba12/Pulpit/interfaces
echo "" >> /home/seba12/Pulpit/interfaces
echo "address $adres" >> /home/seba12/Pulpit/interfaces
echo "gateway $gateway" >> /home/seba12/Pulpit/interfaces
echo "netmask $maska" >> /home/seba12/Pulpit/interfaces
echo "network $network" >> /home/seba12/Pulpit/interfaces 

echo "Nastepujace dane zostaly przypisane do karty sieciowej:"
echo "Adres: $adres"
echo "Maska: $maska"
echo "Brama domyslna: $gateway"
echo "Adres Sieciowy: $network"

restart

}


function dns1
{

gedit /etc/resolv.conf

restart


}

function dns2
{

echo "Wprowadz adres DNS nr.1"
read nazwa1
echo "Wprowadz adres DNS nr.2"
read nazwa2

echo "nameserver $nazwa1" > /home/seba12/Pulpit/resolv.conf
echo "nameserver $nazwa2" >> /home/seba12/Pulpit/resolv.conf

restart

}


echo "1. Konfiguracja Adresów DNS: "
echo "2. Konfiguracja Adresów IP Karty Sieciowej: "
echo
echo -n "Wybieram zadanie nr.: "
read a

case "$a" in
"1") wybor ;;
"2") wybor2 ;;
*) echo "Wybrales nieprawidlowa opcje !"

esac



exit 0

3. Program Kalkulator ( nie wiedziałem tylko jak w bashu wprowadzić zmienną float aby można było oblicząć liczby po przecinku :/ )

Kod: Zaznacz cały

#!/bin/bash
#
#                                                          
# Program wykonuje operacje matematyczne na liczbach       
#                                                          
# Autor : Sebastian R aka sQrtek                              
#                                                          
#          Wszelkie prawa zastrzezone                      
#                                                          
c=t

function pierwiastki
{
echo -n "Podaj Pierwiastek: "
read liczba
echo -n "Podaj Stopien Pierwiastka: "
read stopien
echo
echo -n "Wynik to: "
echo "scale=$stopien; sqrt($liczba)" | bc
}

function zapytanie
{
echo -n "Czy chcesz wykonac jeszcze jakies dzialanie matematyczne? [ t/n ]: "
read c
}

function potegi
{
echo
echo -n "Podaj liczbe: "
read a
echo -n "Do ktorej potegi chcesz podniesc liczbe? : "
read b
let potega=$[a**b]
echo "$a^ $b to:" $potega
}

function odejmowanie
{
echo
echo -n "Podaj liczbe nr.1: "
read liczba1
echo -n "Podaj liczbe nr.2: "
read liczba2
let wynik=$liczba1-$liczba2
echo "$liczba1 - $liczba2 = $wynik"
}
function dodawanie
{
echo
echo -n "Podaj liczbe nr.1: "
read liczba1
echo -n "Podaj liczbe nr.2: "
read liczba2
let wynik=$liczba1+$liczba2
echo "$liczba1 + $liczba2 = $wynik "
}

function mnozenie
{
echo
echo -n "Podaj liczbe nr.1: "
read liczba1
echo -n "Podaj liczbe nr.2: "
read liczba2
let wynik=$liczba1*liczba2
echo "$liczba1 * $liczba2 = $wynik "
}

function dzielenie
{
echo
echo -n "Podaj liczbe nr.1: "
read liczba1
echo -n "Podaj liczbe nr.2: "
read liczba2
if [ "$liczba1" = "0" ]
then 
	echo
	echo "Nie dziel przez zero ! "
	exit 1
else
	let wynik=$liczba1/$liczba2
	let reszta=$liczba%$liczba2
echo "$liczba1 / $liczba2 = $wynik,$reszta"
fi
}

function wybor
{
while [ "$c" = "t" ]; do
clear
echo "------------------------------"
echo "-1. Mnozenie                 -"
echo "-2. Dzielenie                -"
echo "-3. Dodawanie                -"
echo "-4. Odejmowanie              -"
echo "------------------------------"
echo "-5. Potegi                   -"
echo "-6. Pierwiastki              -"
echo "------------------------------"
echo -n "Wybieram do wykonania : "
read liczba
case "$liczba" in
"1" | "Mnozenie" | "mnozenie" | "Mnoz" | "mnoz") mnozenie && zapytanie ;;
"2" | "Dzielenie" | "dzielenie" | "Dz" | "dz") dzielenie && zapytanie ;;
"3" | "Dodawanie" | "dodawanie" | "Dod" | "dod") dodawanie && zapytanie ;;
"4" | "Odejmowanie" | "odejmowanie" | "Od" | "odej") odejmowanie && zapytanie ;;
"5" | "Potegi" | "Potegowanie" | "potegi" | "potegowanie" | "pot" | "Pot") potegi && zapytanie ;;
"6" | "Pierwiastki" | "pierwiastki" | "Pier" | "pier") pierwiastki && zapytanie;;
*) echo "Wybrales nieprawidlowe dzialanie !"
esac
done
}

wybor
4. Odmontowywanie Pendrive'a z systemu i opróżnianie śmietnika z pendriva :D

Kod: Zaznacz cały


#!/bin/bash
# 
#
# Program ma na celu usunięcie katalogu .trash-1000..    
# i odmontowanie pendrive'a z systemu.
#
#     Autor: Sebastian R aka sQrtek
#
#           Wszelkie prawa zastrzezone
#
#
clear
if [ -d /media/KINGSTON ]; then
echo "Znalazlo urzadzenie KINGSTON'a.. i / lecz.."
sleep 3
else
echo "Nie znalazlo urzadzenia KINGSTON."
exit 0 
fi
if [ -d /media/KINGSTON/.trash-1000 ]; then
rm -r /media/KINGSTON/.trash-1000
umount /media/KINGSTON/
echo "Katalog .trash-1000 zostal usunięty, a pendrive wysunięty."
else
echo "Katalog .trash-1000 nie istnieje..."
fi

exit 0
5. Narzedzia Sieciowe

Kod: Zaznacz cały

#!/bin/bash
clear
d=t;

#Autor: Sebastian R / sQrtek

while [ "$d" = "t" ]; do
echo "---------------------------------------------------"
echo "---------N a r z e d z i a  S i e c i o w e--------"
echo "---------------------------------------------------"
echo 
echo "1. Ping"
echo "2. TraceRoute"
echo "3. Netstat"
echo "4. Sprawdzanie Konfiguracji karty Sieciowej"
echo "5. Wyjscie z Programu"
echo
echo -n "Wybieram zadanie nr.: "

read a

case "$a" in
"1") echo -n "Podaj adres IP lub nazwe Domeny do PING'owania : "
	   read adres
     echo -n "Podaj liczbe Pakietow do wyslania: "
	   read pakiet
	   ping -c $pakiet $adres  ;;

"2") echo "Podaj adres IP do Trasowania : "
	read adres1
     traceroute $adres1 
echo "Traceroute zostal zakonczony.." ;;

"3") netstat ;;

"4") ifconfig ;;

"5") echo "Program zostal zakonczony."
     exit 1 ;;

*) echo "Wybrales nieprawidlowa opcje" 

esac

echo
echo -n "Czy chcesz wykonac jeszcze jakies zadanie? [ t/n ] : "
read d
clear
done

exit 0
6. Program do obliczania liczby ścian/wierzchołków/krawędzi w Graniastosłupach/Ostrosłupach

Kod: Zaznacz cały

#!/bin/bash
#                                                               
# Program sluzy do wyliczenia liczby krawędzi, wierzchołków i   
# ścian w Graniastoslupach i Ostroslupach..                     
#                                                               
# Autor : Sebastian R / sQrtek 
#          
# legenda: g - Graniastoslup / o - Ostroslup ;) 
#                                                     
#                 Wszelkie prawa zastrzezone                    
#                                                               

function graniastoslup
{
echo -n "Podaj liczbe boków w podstawie Graniastoslupa(n): "
read liczba

kraw=$[3*$liczba]
echo -n "Ilosc Krawedzi [3*n]: "
echo $kraw
sci=$[$liczba+2]
echo -n "Ilosc Śćian [n+2]: "
echo $sci
wierz=$[2*$liczba]
echo -n "Ilosc Wierzchołków [2*n]: "
echo $wierz
}

function ostroslup
{
echo -n "Podaj liczbe boków w podstawie Ostroslupa(n): "
read liczba

kraw=$[2*$liczba]
echo -n "Ilosc Krawedzi [2*n]: "
echo $kraw
sci=$[$liczba+1]
echo -n "Ilosc Śćian [n+1]: "
echo $sci
wierz=$[$liczba+1]
echo -n "Ilosc Wierzchołków [n+1]: "
echo $wierz
}

echo -n "Wybierz figure geometyczna [ g/o ]: "
read a

case "$a" in
"1" | "Graniastoslup" | "G" | "g" | "graniastoslup") graniastoslup ;;
"2" | "Ostroslup" | "O" | "o" | "ostroslup" ) ostroslup ;;
*) echo "Wybrales nieprawidlowa opcje ! "
esac

exit 0
7. Instalacja / Deinstalacja Programów z Systemu :D

Kod: Zaznacz cały

#!/bin/bash
#
# Program po wpisaniu nazwy programu według naszych potrzeb usuwa lub 
# instaluje program z repozytoriów
#
# Autor : Sebastian R
#
#
clear
function instalacja
{
echo -n "Podaj nazwe programu do zainstalowania: "
read nazwa

sudo apt-get install $nazwa
}

function deinstalacja
{
echo -n "Podaj nazwe programu do odinstalowania: "
read nazwa

sudo apt-get remove $nazwa
}

echo "1. Instalacja Oprogramowania. "
echo "2. Deinstalacja Oprogramowania. "
echo -n "Wybieram nr. : "
read nazwa

case "$nazwa" in
"1") instalacja ;;
"2") deinstalacja ;;
*) echo "Wybrales niewlasciwa opcje ! "
esac

exit 0

8. Program sprawdza czy Trojkąt jest prostokątny

Kod: Zaznacz cały

#!/bin/bash
#
# Autor: Sebastian R
# Wszelkie prawa zastrzeżone.
# Program po podaniu trzech boków, sprawdza czy dany trojkąt jest prostokątny.
#
d=t

while [ "$d" = "t" ]; do
clear
echo -n "Podaj dlugosc jednej przyprostokątnej: "
read a

echo -n "Podaj dlugosc drugiej przyprostokątnej: "
read b

echo -n "Podaj dlugosc Przeciwprostokątnej: "
read c
echo
echo -n "Trwa wykonywanie obliczeń.. Proszę Czekać.."
sleep 4 #Mały Bajer :D
echo

let bok1=$[a**2]
let bok2=$[b**2]
let bok3=$[c**2]

let suma1=$bok1+$bok2

if [ "$suma1" = "$bok3" ]
then
echo
echo "Trójkąt jest prostokątny, ponieważ wybrales.."
echo
echo "Dlugosci Boków przyprostokątnych to: $a, $b.."
echo "Suma kwadratów Dlugosci przyprostokątnych to: $suma1 "
echo
echo "Długość Boku przeciwprostokątnego to: $c.."
echo "Kwadrat Dlugosci przeciwprostokątnej to: $bok3 "
echo
echo "L=$suma1, P=$bok3  .. L = P "
echo
else
echo
echo "Trójkąt NIE jest prostokątny, ponieważ.. "
echo 
echo "Suma Kwadratów Długości przyprostokątnych wynosi: $suma1 .."
echo "A Suma Kwadratu długości przeciwprostokątnej to: $bok3 .."
echo
echo "L=$suma1, P=$bok3 .. L != P "
fi

echo
echo -n "Czy chcesz wykonac jeszcze jakies obliczenia? [ t/n ]: "
read d

done

echo "Program zostal zakonczony.."


exit 0
9. Program po podaniu Państwa EU podaje jego stolicę

Kod: Zaznacz cały

#!/bin/bash
#
# Skrypt po wybraniu odpowiedniego Państwa Europejskiego 
# wypisuje stolice danego kraju europejskiego.           
#                                                        
# Autor: Sebastian R / sQrtek                             
#                                                        
# Wszelkie prawa zastrzeżone                             
#                                                        
#                   U W A G A ! ! !                      
# Nazwy Państw należy podawać z Wielkiej litery ..       
# oraz również bez Polskich znaków                       
#
Albania=(Tirana)
Andora=(Andora)
Armenia=(Erewań)
Austria=(Wiedeń)
Azerbejdzan=(Baku)
Belgia=(Bruksela)
Bialorus=(Minsk)
BosniaiHercegowina=(Sarajewo)
Bulgaria=(Sofia)
Chorwacja=(Zagrzeb)
Cypr=(Nikozja)
Czechy=(Praga)
Dania=(Kopenhaga)
Estonia=(Tallin)
Finlandia=(Helsinki)
Francja=(Paryż)
Gibraltar=(kolonia angielska)
Grecja=(Ateny)
Gruzja=(Tbilisi)
Hiszpania=(Madryt)
Holandia=(Amsterdam)
Irlandia=(Dublin)
Islandja=(Rejkiawik)
Izrael=(Tel Awiw - Jaffa)
Jugoslawia=(Belgrad)
Kazachstan=(Ałma Ata)
Kirgistan=(Biszkek)
Lichtenstein=(Vaduz)
Litwa=(Wilno)
Luksemburg=(Luksemburg)
Lotwa=(Ryga)
Macedonia=(Skopie)
Malta=(Valletta)
Moldawia=(Kiszyniów)
Monako=(Monako)
Niemcy=(Berlin)
Norwegia=(Oslo)
Polska=(Warszawa)
Portugalia=(Lizbona)
Rosja=(Moskwa)
Rumunia=(Bukareszt)
SanMarino=(San Marino)
Slowacja=(Bratyslawa)
Slowenia=(Lublana)
Szwajcaria=(Berno)
Szwecja=(Sztokholm)
Turcja=(Ankara)
Turmekistan=(Aszchabad)
Ukraina=(Kijow)
Uzbekistan=(Taszkent)
Watykan=(Watykan)
Wegry=(Budapeszt)
Wielka_Brytania=(Londyn)
Wlochy=(Rzym)

echo -n "Podaj nazwe Państwa Europejskiego: "
read nazwa

if [ "$nazwa" = "Polska" ]; then
echo -n "Stolica Polski jest: "
echo ${Polska[0]}

elif [ "$nazwa" = "Andora" ]; then
echo -n "Stolica Andory jest: "
echo ${Andora[0]}

elif [ "$nazwa" = "Armenia" ]; then
echo -n "Stolica Andory jest: "
echo ${Armenia[0]}

elif [ "$nazwa" = "Austria" ]; then
echo -n "Stolica Austrii jest: "
echo ${Austria[0]}

elif [ "$nazwa" = "Azerbejdzan" ]; then
echo -n "Stolica Azerbejdzanu jest: "
echo ${Azerbejdzan[0]}

elif [ "$nazwa" = "Belgia" ]; then
echo -n "Stolica Belgii jest: "
echo ${Belgia[0]}

elif [ "$nazwa" = "Bialorus" ]; then
echo -n "Stolica Bialorusi jest: "
echo ${Bialorus[0]}

elif [ "$nazwa" = "Bosnia i Hercegowina" ]; then
echo -n "Stolica Bosni i Hercegowiny jest: "
echo ${BosniaiHercegowina[0]}

elif [ "$nazwa" = "Bulgaria" ]; then
echo -n "Stolica Bulgarii jest: "
echo ${Bulgaria[0]}

elif [ "$nazwa" = "Chorwacja" ]; then
echo -n "Stolica Chorwacii jest: "
echo ${Chorwacja[0]}

elif [ "$nazwa" = "Cypr" ]; then
echo -n "Stolica Cypru jest: "
echo ${Cypr[0]}

elif [ "$nazwa" = "Czechy" ]; then
echo -n "Stolica Czech jest: "
echo ${Czechy[0]}

elif [ "$nazwa" = "Dania" ]; then
echo -n "Stolica Danii jest: "
echo ${Dania[0]}

elif [ "$nazwa" = "Estonia" ]; then
echo -n "Stolica Estonii jest: "
echo ${Estonia[0]}

elif [ "$nazwa" = "Finlandia" ]; then
echo -n "Stolica Finlandii jest: "
echo  ${Finlandia[0]}

elif [ "$nazwa" = "Francja" ]; then
echo -n "Stolica Francji jest: "
echo  ${Francja[0]}

elif [ "$nazwa" = "Gibraltar" ]; then
echo -n "Stolica Gibraltaru jest: "
echo  ${Gibraltar[0]}

elif [ "$nazwa" = "Grecja" ]; then
echo -n "Stolica Grecji jest: "
echo  ${Grecja[0]}

elif [ "$nazwa" = "Gruzja" ]; then
echo -n "Stolica Gruzji jest: "
echo  ${Gruzja[0]}


elif [ "$nazwa" = "Hiszpania" ]; then
echo -n "Stolica Hiszpanii jest: "
echo  ${Hiszpania[0]}

elif [ "$nazwa" = "Holandia" ]; then
echo -n "Stolica Holandii jest: "
echo  ${Holandia[0]}

elif [ "$nazwa" = "Irlandia" ]; then
echo -n "Stolica Irlandii jest: "
echo  ${Irlandia[0]}

elif [ "$nazwa" = "Islandja" ]; then
echo -n "Stolica Islandji jest: "
echo  ${Islandja[0]}

elif [ "$nazwa" = "Izrael" ]; then
echo -n "Stolica Izraelu jest: "
echo  ${Izrael[0]}

elif [ "$nazwa" = "Jugoslawia" ]; then
echo -n "Stolica Jugoslawii jest: "
echo  ${Jugoslawia[0]}

elif [ "$nazwa" = "Kazachstan" ]; then
echo -n "Stolica Kazachstanu jest: "
echo  ${Kazachstan[0]}

elif [ "$nazwa" = "Kirgistan" ]; then
echo -n "Stolica Kirgistanu jest: "
echo  ${Kirgistan[0]}

elif [ "$nazwa" = "Lichtenstein" ]; then
echo -n "Stolica Lichtensteinu jest: "
echo  ${Lichtenstein[0]}

elif [ "$nazwa" = "Litwa" ]; then
echo -n "Stolica Litwy jest: "
echo  ${Litwa[0]}

elif [ "$nazwa" = "Luksemburg" ]; then
echo -n "Stolica Luksemburgu jest: "
echo  ${Luksemburg[0]}

elif [ "$nazwa" = "Lotwa" ]; then
echo -n "Stolica Lotwy jest: "
echo  ${Lotwa[0]}

elif [ "$nazwa" = "Macedonia" ]; then
echo -n "Stolica Macedonii jest: "
echo  ${Macedonia[0]}

elif [ "$nazwa" = "Malta" ]; then
echo -n "Stolica Malty jest: "
echo  ${Malta[0]}

elif [ "$nazwa" = "Moldawia" ]; then
echo -n "Stolica Moldawy jest: "
echo  ${Moldawa[0]}

elif [ "$nazwa" = "Monako" ]; then
echo -n "Stolica Monako jest: "
echo  ${Monako[0]}

elif [ "$nazwa" = "Niemcy" ]; then
echo -n "Stolica Niemiec jest: "
echo  ${Niemcy[0]}

elif [ "$nazwa" = "Norwegia" ]; then
echo -n "Stolica Norwegii jest: "
echo  ${Norwegia[0]}

elif [ "$nazwa" = "Portugalia" ]; then
echo -n "Stolica Portugalii jest: "
echo  ${Portugalia[0]}

elif [ "$nazwa" = "Rosja" ]; then
echo -n "Stolica Rosji jest: "
echo  ${Rosja[0]}

elif [ "$nazwa" = "Rumunia" ]; then
echo -n "Stolica Rumunji jest: "
echo  ${Rumunia[0]}

elif [ "$nazwa" = "SanMarino" ]; then
echo -n "Stolica San Marino jest: "
echo  ${SanMarino[0]}

elif [ "$nazwa" = "Slowacja" ]; then
echo -n "Stolica Slowacji jest: "
echo  ${Slowacja[0]}

elif [ "$nazwa" = "Slowenia" ]; then
echo -n "Stolica Slowenjii jest: "
echo  ${Slowenia[0]}

elif [ "$nazwa" = "Szwajcaria" ]; then
echo -n "Stolica Szwajcarji jest: "
echo  ${Szwajcaria[0]}

elif [ "$nazwa" = "Szwecja" ]; then
echo -n "Stolica Szwecji jest: "
echo  ${Szwecja[0]}

elif [ "$nazwa" = "Turcja" ]; then
echo -n "Stolica Turcji jest: "
echo  ${Turcja[0]}

elif [ "$nazwa" = "Turmekistan" ]; then
echo -n "Stolica Turmekistanu jest: "
echo  ${Turmekistan[0]}

elif [ "$nazwa" = "Ukraina" ]; then
echo -n "Stolica Ukrainy jest: "
echo  ${Ukraina[0]}

elif [ "$nazwa" = "Uzbekisan" ]; then
echo -n "Stolica Uzbekistanu jest: "
echo  ${Uzbekistan[0]}

elif [ "$nazwa" = "Watykan" ]; then
echo -n "Stolica Watykanu jest: "
echo  ${Watykan[0]}

elif [ "$nazwa" = "Wegry" ]; then
echo -n "Stolica Wegier jest: "
echo  ${Wegry[0]}

elif [ "$nazwa" = "Wielka Brytania" ]; then
echo -n "Stolica Wielkiej Brytanji jest: "
echo  ${Wielka_Brytania[0]}

elif [ "$nazwa" = "Wlochy" ]; then
echo -n "Stolica Wloch jest: "
echo  ${Wlochy[0]}


else echo "Podales zla nazwe Państwa , lub dane Państwo nie lezy w Europie !" 

fi
10. Program służy do Kompresji i Dekompresji Archiwów

Kod: Zaznacz cały

#!/bin/bash
#Autor: Sebastian R / sQrtek
# Wszelkie prawa zastrzezone
d=t

while [ "$d" = "t" ]; do

function Przeglad
{
echo
echo "W katalogu $PWD znajduja sie nastepujace pliki: "
echo
ls -l

}
echo "1. tar"
echo "2. tar.gz"
echo "3. tar.bz2"
echo "4. zip"
echo

function zip5
{
sleep 2
clear
echo "Etap [2/4] "
echo
echo -n "Podaj nazwe archiwum 'zip' do stworzenia: "
read nazwa

sleep 2
clear
echo "Etap [3/4] "
echo
echo  "Podaj nazwy Plików do umieszczenia w Archiwum..  "
echo  "[ Pliki musza byc w tym samym folderze co skrypt ] "
echo -n "Wpisuj nazwy po Spacji : "
read pliki

sleep 2
clear
echo "Etap [4/4] "
echo
echo "Zostalo stworzone archiwum o nazwie: $nazwa.zip"
zip -r $nazwa.zip $pliki
}



function gzip5
{
sleep 2
clear
echo "Etap [2/4] "
echo
echo -n "Podaj nazwe archiwum 'tar.gz' do stworzenia: "
read nazwa

sleep 2
clear
echo "Etap [3/4] "
echo
echo  "Podaj nazwy Plików do umieszczenia w Archiwum..  "
echo  "[ Pliki musza byc w tym samym folderze co skrypt ] "
echo -n "Wpisuj nazwy po Spacji : "
read pliki

sleep 2
clear
echo "Etap [4/4] "
echo
echo "Zostalo stworzone archiwum o nazwie: $nazwa.tar.gz"
echo "Umieszczone zostaly pliki o nazwie: $pliki ."
tar -zcf $nazwa.tar.gz $pliki
}




function bzip5
{
sleep 2
clear
echo "Etap [2/4] "
echo
echo -n "Podaj nazwe archiwum 'tar.bz2' do stworzenia: "
read nazwa

sleep 2
clear
echo "Etap [3/4] "
echo
echo  "Podaj nazwy Plików do umieszczenia w Archiwum..  "
echo  "[ Pliki musza byc w tym samym folderze co skrypt ] "
echo -n "Wpisuj nazwy po Spacji : "
read pliki

sleep 2
clear
echo "Etap [4/4] "
echo
echo "Zostalo stworzone archiwum o nazwie: $nazwa.tar.bz2"
echo "Umieszczone zostaly pliki o nazwie: $pliki ."
tar -jcf $nazwa.tar.bz2 $pliki
}



function tar5
{
sleep 2
clear
echo "Etap [2/4] "
echo
echo -n "Podaj nazwe archiwum 'tar' do stworzenia: "
read nazwa

sleep 2
clear
echo "Etap [3/4] "
echo
echo  "Podaj nazwy Plików do umieszczenia w Archiwum..  "
echo  "[ Pliki musza byc w tym samym folderze co skrypt ] "
echo -n "Wpisuj nazwy po Spacji : "
read pliki

sleep 2
clear
echo "Etap [4/4] "
echo
echo "Zostalo stworzone archiwum o nazwie: $nazwa.tar"
echo "Umieszczone zostaly pliki o nazwie: $pliki ."
tar -cf $nazwa.tar $pliki
}


function Kompresja
{
clear
echo "Etap [1/4] "
echo
echo "Wybierz rodzaj archiwum do stworzenia: "
echo
echo "1. tar"
echo "2. tar.gz (gzip)"
echo "3. tar.bz2 (bzip2)"
echo "4. zip "
echo
echo -n "Wybieram Archiwum nr.: "
read nazwa

case "$nazwa" in
"1" | "tar") tar5 ;;
"2" | "targz" | "gzip") gzip5 ;;
"3" | "tarbz2" | "bzip2") bzip5 ;;
"4" | "zip") zip5 ;;
*) echo "Wybrales niewlasciwa opcje !"
esac

}
function targz
{
clear
echo "Etap [2/3] "
echo
echo -n "Podaj nazwe archiwum 'tar.gz' do rozpakowania: "
read nazwa

if [ -a /home/seba12/Pulpit/$nazwa.tar.gz ] 
# -a oznacza ze szuka PLIKU, a -d oznacza ze szuka PLIKU jako KATALOGU.. 
# dlatego bedzie wystepowal bląd...
then
clear
echo "Etap [3/3] "
echo
echo "Archiwum zostalo rozpakowane i wypakowane zostaly nastepujace pliki: "
tar -zxvf $nazwa.tar.gz
echo
else
clear
echo "Archiwum takie nie istnieje, lub wybrales zly rodzaj Archiwum !"
fi

}

function tar1
{
clear
echo "Etap [2/3] "
echo
echo -n "Podaj nazwe archiwum 'tar' do rozpakowania: "
read nazwa

if [ -a /home/seba12/Pulpit/$nazwa.tar ] 
# -a oznacza ze szuka PLIKU, a -d oznacza ze szuka PLIKU jako KATALOGU.. 
# dlatego bedzie wystepowal bląd...
then
clear
echo "Etap [3/3] "
echo
echo "Archiwum zostalo rozpakowane i wypakowane zostaly nastepujace pliki: "
tar -zxvf $nazwa.tar
else
clear
echo "Archiwum takie nie istnieje, lub wybrales zly rodzaj Archiwum !"

fi

}

function tarbz2
{
clear
echo "Etap [2/3] "
echo
echo -n "Podaj nazwe archiwum 'tar.bzip2' do rozpakowania: "
read nazwa

if [ -a /home/seba12/Pulpit/$nazwa.tar.bz2 ] 
# -a oznacza ze szuka PLIKU, a -d oznacza ze szuka PLIKU jako KATALOGU.. 
# dlatego bedzie wystepowal bląd...
then
clear
echo "Etap [3/3] "
echo
echo "Archiwum zostalo rozpakowane i wypakowane zostaly nastepujace pliki: "
tar -zxvf $nazwa.tar.bz2

else
clear
echo "Archiwum takie nie istnieje, lub wybrales zly rodzaj Archiwum !"

fi

}


function zip2
{
clear
echo "Etap [2/3] "
echo
echo -n "Podaj nazwe archiwum 'zip' do rozpakowania: "
read nazwa

if [ -a /home/seba12/Pulpit/$nazwa.zip ] 
# -a oznacza ze szuka PLIKU, a -d oznacza ze szuka PLIKU jako KATALOGU.. 
# dlatego bedzie wystepowal bląd...
then
clear
echo "Etap [3/3] "
echo
unzip -X $nazwa.zip
echo "Archiwum zostalo rozpakowane i wypakowane zostaly nastepujace pliki: "
else
clear
echo "Archiwum takie nie istnieje, lub wybrales zly rodzaj Archiwum !"

fi

}

function Dekompresja
{
clear
echo "Etap [1/3] "
echo
echo "Wybierz archiwum do rozpakowania.."
echo
echo "1. tar"
echo "2. tar.gz"
echo "3. tar.bz2"
echo "4. zip"
echo
echo -n "Wybieram archiwum nr.: "
read a

echo
case "$a" in

"1" | "tar") tar1 ;;
"2" | "tar.gz" | "targz" | "gz") targz ;;
"3" | "tar.bz2" | "bz2" | "tarbz2") tarbz2 ;;
"4" | "zip") zip2 ;;
*) echo "Wybrales nieprawidlowa opcje !"
esac

}


clear
data=`date`
echo "$data"
echo "Znajdujemy się teraz w $PWD.."
echo
echo "Wybierz rodzaj dzialania: "
echo
echo "1. Kompresja Plików - Tworzenie Nowego Archiwum i dołączanie Plików."
echo "2. Dekompresja Plików - Rozpakowywanie Istniejącego Archiwum."
echo "3. Podgląd Listy Plików w danym Katalogu."
echo
echo -n "Wybieram dzialanie nr.: "
read zmienna
case "$zmienna" in

"1" | "Kompresja")  Kompresja ;;
"2" | "Dekompresja") Dekompresja ;;
"3" | "Przeglad") Przeglad ;;
*) echo "Wybrales niewlasciwa opcje !"
esac


echo
echo -n "Czy chcesz wykonac jeszcze jakies zadanie? [ t/n ]:  "
read d

done

exit 0
Awatar użytkownika
kondziu jah
Zakręcona Traszka
Zakręcona Traszka
Posty: 621
Rejestracja: 27 wrz 2010, 19:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86_64
Lokalizacja: Wrocław
Kontakt:

Re: [Bash] Moje skrypty :)

Post autor: kondziu jah »

Program od stolic państw to porażka ;)
Można było go napisać na conajmniej dwa inne sposoby, by był krótszy.
Wszelkie prawa zastrzeżone
czyli że co?

A do matury wybiera się tematy zakończone słowami "[...] i innych dziełach sztuki" - wtedy nie trzeba za dużo czytać ;)
Skrypt pobierający najnowszy sterownik nvidia -> http://adf.ly/Y8HRT
http://adf.ly/Y8HMh -> zaproszenie do dropboksa -> 500MB gratis.
http://adf.ly/?id=5385762 -> zarabiaj na linkowaniu
http://adf.ly/YIOh1 -> UIQ3 is not dead!
Awatar użytkownika
sQrtek
Sędziwy Jeż
Sędziwy Jeż
Posty: 99
Rejestracja: 13 lut 2010, 11:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: [Bash] Moje skrypty :)

Post autor: sQrtek »

Wiem że można było ten program zrobić inaczej ale akurat uczyłem się wtedy tablic i wpadłem na pomysł aby taki skrypt napisać :P
A do matury wybiera się tematy zakończone słowami "[...] i innych dziełach sztuki" - wtedy nie trzeba za dużo czytać
czyli że jak bo nie czaję?:D
Awatar użytkownika
rob006
Wytworny Kaczor
Wytworny Kaczor
Posty: 417
Rejestracja: 28 paź 2007, 23:11
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Lublin
Kontakt:

Re: [Bash] Moje skrypty :)

Post autor: rob006 »

Nie bardzo rozumiem ideę skryptu do instalowania nowych programów. Czy wpisanie "apt-get install" nie jest prostsze i szybsze niż korzystanie ze specjalnego skryptu?
Awatar użytkownika
sQrtek
Sędziwy Jeż
Sędziwy Jeż
Posty: 99
Rejestracja: 13 lut 2010, 11:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: [Bash] Moje skrypty :)

Post autor: sQrtek »

Jest szybsze, ale tak jak już mówiłem skrypty są dosyć stare, a dałem pierwsze lepsze skrypty które znalazłem na dysku :D w sumie masz rację trochę bez sensu jest ten skrypt, choć możliwe że dla jakiś początkujących użytkowników mógłby i ten skrypt być przydatny :).
Dominbik
Wytworny Kaczor
Wytworny Kaczor
Posty: 401
Rejestracja: 13 lip 2010, 08:31
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: [Bash] Moje skrypty :)

Post autor: Dominbik »

większość z tego rodzaju skryptów nie ma sensu. lepiej nauczyć się poleceń.
http://www.youtube.com/watch?v=oX3AwbgoBzg

Kod: Zaznacz cały

#!/bin/bash
usr=(dominbik kasia andrzej root)
acc=("shutdown -h now" "shutdown -r now")
##############################
wish=$1
for ((n=0; n<${#usr[@]}; n++)); do
	if users | grep ${usr[n]} >> /dev/null; then
	((noflog++)); fi; done
if [ $noflog -gt 1 ]; then
echo $noflog; else
for ((n=0; n<${#acc[@]}; n++)); do
	if [ "$wish" == "${acc[n]}" ]; then
	exec $wish
	fi
done;fi

Kod: Zaznacz cały

#!/bin/sh
if [ `bash /usr/share/silnik/mlogged.sh` ]; then
message="Na komputerze wykryto inne zalogowane osoby."
gxmessage -center -name "Wyłączenie Komputera" -buttons "Wylacz mimo to":1,Zamknij:0 "$message"
wynik="$?"
	if [ "$wynik" -eq "1" ]; then
	gksudo "shutdown -h now"
	elif [ "$wynik" -eq "0" ]; then
	exit
	fi
else
message="Czy na pewno chcesz wyłączyć komputer?"
gxmessage -center -name "Wyłączenie Komputera" -buttons Tak:2,Nie:1,Restart:0 "$message"
wynik="$?"
	if [ "$wynik" -eq "2" ]; then
	sudo /usr/share/silnik/mlogged.sh "shutdown -h now"
	elif [ "$wynik" -eq "1" ]; then
	exit
	elif [ "$wynik" -eq "0" ]; then
	sudo /usr/share/silnik/mlogged.sh "shutdown -r now"
	fi
fi
na wyłączanie komputera, przy środowisku np. openbox z wykryciem czy inne osoby są zalogowane; np. przez ssh, xdmcp...
Proste zabezpieczenie dla zdalnych terminali, by osoba fizycznie siedząca przy komputerze/przez np. nxclient nie wyłączyła komputera (nie będą rootem) gdy ktoś inny jest zalogowany
Awatar użytkownika
kondziu jah
Zakręcona Traszka
Zakręcona Traszka
Posty: 621
Rejestracja: 27 wrz 2010, 19:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86_64
Lokalizacja: Wrocław
Kontakt:

Re: [Bash] Moje skrypty :)

Post autor: kondziu jah »

sQrtek pisze:
A do matury wybiera się tematy zakończone słowami "[...] i innych dziełach sztuki" - wtedy nie trzeba za dużo czytać
czyli że jak bo nie czaję?:D
http://zszil.pl/media/matury/tematy2012.pdf

Teamty od strony 8 odnoszą się do literatury i innych dzieł sztuki. Osobiscie wybrałem temat (str.12, t.76), do omówienia którego potrzebne są przykłady literackie i filmowe ;)
Skrypt pobierający najnowszy sterownik nvidia -> http://adf.ly/Y8HRT
http://adf.ly/Y8HMh -> zaproszenie do dropboksa -> 500MB gratis.
http://adf.ly/?id=5385762 -> zarabiaj na linkowaniu
http://adf.ly/YIOh1 -> UIQ3 is not dead!
Awatar użytkownika
sQrtek
Sędziwy Jeż
Sędziwy Jeż
Posty: 99
Rejestracja: 13 lut 2010, 11:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: [Bash] Moje skrypty :)

Post autor: sQrtek »

No ale to jest ustny :D a ustnym to ja się tak nie przejmuje bo mam omówić różnice między dziełami literackimi a ich adaptacjami, czyli mam hamleta i granice, więc nie ma źle ;) Ale to nie topic o maturze ! :D Wiem że skrypty mało przydatne bo mało przydatne przy administracji systemem, no ale akurat takie znalazłem, jeszcze mam do tworzenia kont, grup, śr. arytmetycznych, median, silni itd. mało przydatne, ale dobre i to.
Awatar użytkownika
kondziu jah
Zakręcona Traszka
Zakręcona Traszka
Posty: 621
Rejestracja: 27 wrz 2010, 19:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86_64
Lokalizacja: Wrocław
Kontakt:

Re: [Bash] Moje skrypty :)

Post autor: kondziu jah »

To ja poproszę medianę.

W styczniu odbył się drugi etap XXXVIII Olimpiady Wiedzy Technicznej. Było tam ciekawe zadanie z informatyki, którego nie zrobiłem, bo nie znam żadnego języka prócz Basha i którego nie musiałem robić jako matematyk/elektronik ;)

Zadanie to próbowałem później zrobić w domu, lecz nie mogłem wymyśleć sposobu na medianę.

Treść zadania - jakby ktoś chciał sprawdzić swe umiejętności - dostępna jest tu:
http://www.elektroda.pl/rtvforum/viewto ... 9#10422759

-- 08 kwi 2012 21:49 --

To ja poproszę medianę.

W styczniu odbył się drugi etap XXXVIII Olimpiady Wiedzy Technicznej. Było tam ciekawe zadanie z informatyki, którego nie zrobiłem, bo nie znam żadnego języka prócz Basha i którego nie musiałem robić jako matematyk/elektronik ;)

Zadanie to próbowałem później zrobić w domu, lecz nie mogłem wymyśleć sposobu na medianę.

Treść zadania - jakby ktoś chciał sprawdzić swe umiejętności - dostępna jest tu:
http://www.elektroda.pl/rtvforum/viewto ... 9#10422759
Skrypt pobierający najnowszy sterownik nvidia -> http://adf.ly/Y8HRT
http://adf.ly/Y8HMh -> zaproszenie do dropboksa -> 500MB gratis.
http://adf.ly/?id=5385762 -> zarabiaj na linkowaniu
http://adf.ly/YIOh1 -> UIQ3 is not dead!
Awatar użytkownika
rob006
Wytworny Kaczor
Wytworny Kaczor
Posty: 417
Rejestracja: 28 paź 2007, 23:11
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Lublin
Kontakt:

Re: [Bash] Moje skrypty :)

Post autor: rob006 »

Medianę można obliczyć algorytmem Hoare'a, ewentualnie jak jak jesteś ambitny możesz spróbować magicznych piątek.
Awatar użytkownika
sQrtek
Sędziwy Jeż
Sędziwy Jeż
Posty: 99
Rejestracja: 13 lut 2010, 11:57
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: [Bash] Moje skrypty :)

Post autor: sQrtek »

Tak właśnie szukam tego i normalnie wszystko mam ale tego nie znalazłem :x chyba że ja to w C++ zrobiłem.. ale teraz sam już nie wiem, w każdym bądź razie pętla do podawania liczb, sortowanie liczb, i środkowa liczba to mediana. W sumie jak można by było zrobić sortowanie w Bashu, chyba nie ma nawet czegoś takiego? :D
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [Bash] Moje skrypty :)

Post autor: ethanak »

Pomijając drobny fakt że w samym bashu nie ma obsługi liczb zmiennoprzecinkowych (proszę mi nie wspominać o awku czy bc, bo to przerzuca zadanie z basha na inny język) - istnieją polecenia sort, head, tail i cała banda innych które teoretycznie mogą posłużyć do obliczenia czegokolwiek.

Tylko po co upierać się przy używaniu młotka do pielenia ogródka??? Bash nie jest językiem programowania ogólnego przeznaczenia.
Awatar użytkownika
Hwiparam
Zakręcona Traszka
Zakręcona Traszka
Posty: 814
Rejestracja: 14 lip 2009, 19:02
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64

Re: [Bash] Moje skrypty :)

Post autor: Hwiparam »

Kazachstan=(Ałma Ata)
Chyba Astana :idea:
ODPOWIEDZ

Wróć do „Nasza twórczość”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 79 gości