Bash skripty

Všetko ohľadom Linuxu...
Hensym
VIP
VIP
Používateľov profilový obrázok
Príspevky: 6978
Registrovaný: 24 apr 2011, 0:53
Bydlisko: Zvolen

Bash skripty

Príspevok od používateľa Hensym »

Ahojte, vedel by mi niekto pomôcť s týmito skriptami? Vôbec si s tým neviem rady.

1) zo stránky zadanej ako prvý parameter spracujte odkazy nachádzajúce sa ako prvé v riadku v zdrojovom kóde
(ak je ich v riadku viac, vypíše sa iba prvý). Vypíšte ich vo formáte: "nasiel som SK stranku: $odkaz\n" (kde
$odkaz reprezentuje odkaz) pokiaľ odkaz na stránku obsahuje podreťazec ".sk" inak vypíšte odkazy vo formáte:
"nasiel som cudziu stranku: $odkaz\n"

2) prezrite všetky textové (regular/obyčajný) súbory v zadanom priečinku (prvý parameter) a vyhľadajte v nich
zadané slovo (druhý parameter). Pokiaľ súbor obsahuje zadané slovo, vypíšte hlášku: "ANO, v $subor je slovo
$2" inak vypíšte: "NIE, v $subor nie je slovo $2"

3) vypíšte (len) názvy zariadení pomocou príkazu lspci, ktoré sú typu "PCI bridge"

Navyše, zlyhal notebook, a na maminom to nemám ako vyskúšať. (Nechcem sa jej v tom brblať)
Ďakujem
LukasqoO
King
King
Príspevky: 1647
Registrovaný: 08 okt 2011, 19:54

Re: Bash skripty

Príspevok od používateľa LukasqoO »

Ahoj. Máš už skript v nejakej podobe?

//autoeditácia príspevku (10 Máj 2014, 14:17)
1) nerozumiem poriadne zadaniu...najlepsie je uviest konkretny pripad
2) neviem ci to chces takto...

Kód: Vybrať všetko

#!/bin/bash
prvy_parameter=~/folder/*
druhy_parameter="slovo"
if subor=$(grep -H $druhy_parameter $prvy_parameter | cut -d: -f1)
then
        printf "ANO, $druhy_parameter sa nachadza v:\n$subor\n"
else
        printf "NIE, $druhy_parameter sa nenachadza v:\n$subor\n"
fi
3)

Kód: Vybrať všetko

lspci | grep "PCI bridge"
Je to zbuchane len narychlo.
Hensym
VIP
VIP
Používateľov profilový obrázok
Príspevky: 6978
Registrovaný: 24 apr 2011, 0:53
Bydlisko: Zvolen

Re: Bash skripty

Príspevok od používateľa Hensym »

Ahoj, ďakujem.

Prvá úloha znamená, že prvý parameter bude webová adresa stránky, ktorú stiahnem, zrejme cez príkaz wget. Potom v každom riadku zdrojového kódu tej stránky (čiže riadky oddelím napr. IFS=$'\n') nájdem link, a podľa toho, či link obsahuje .sk, alebo čokoľvek iné, vypíšem, či je to SK, alebo cudzia stránka. :)

Druhému príkladu nie celkom rozumiem (tvojmu kódu). Ten prvý a druhý parameter by sa mal zadávať z Terminalu pri volaní daného .sh súboru. Alebo to chápem zle, a tak si to aj myslel?
masterdead
SysAdmin
SysAdmin
Používateľov profilový obrázok
Príspevky: 1809
Registrovaný: 03 aug 2005, 23:32
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Bash skripty

Príspevok od používateľa masterdead »

no tak to prepis za

Kód: Vybrať všetko

prvy_parameter=$1
druhy_parameter=$2
LukasqoO
King
King
Príspevky: 1647
Registrovaný: 08 okt 2011, 19:54

Re: Bash skripty

Príspevok od používateľa LukasqoO »

Takze mam vytvoreny priecinok s nazvom folder a v nom su 3 subory. 1. a 2. subor ma vnutri "ahoj", 3. "cau"

Bud tie parametre budes pisat do terminalu hned za ./script MYPATH SLOVO

Kód: Vybrať všetko

#!/bin/bash
clear
if [ -d "$1" ]; then
nachadza=$(grep $2 $1* | cut -d: -f1)
nenachadza=$(grep -v $2 $1* | cut -d: -f1)
        printf "\nHladane slovo '$2' sa nachadza v:\n$nachadza\n"
else
        printf "Zvolena cesta neexistuje, skus znova"
fi
        printf "\nHladane slovo '$2' sa nenachadza v:\n$nenachadza\n\n"
Output:

Kód: Vybrať všetko

$: ./script2.sh /root/folder/ ahoj
Hladane slovo 'ahoj' sa nachadza v:
/root/folder/subor1
/root/folder/subor2

Hladane slovo 'ahoj' sa nenachadza v:
/root/folder/subor3
alebo sa ta to opyta po spusteni scriptu

Kód: Vybrať všetko

#!/bin/bash
start(){
clear
read -p "Zadaj cestu k suborom: " MYPATH
if [ -d "$MYPATH" ]; then
read -p "Zadaj hladane slovo: " slovo
nachadza=$(grep $slovo $MYPATH* | cut -d: -f1)
nenachadza=$(grep -v $slovo $MYPATH* | cut -d: -f1)
        printf "\nHladane slovo '$slovo' sa nachadza v:\n$nachadza\n"
else
        printf "Zvolena cesta neexistuje, skus znova"
        sleep 2
        start
fi
        printf "\nHladane slovo '$slovo' sa nenachadza v:\n$nenachadza\n\n"
}
start
Output:

Kód: Vybrať všetko

$: ./script.sh
Zadaj cestu k suborom: /root/folder/
Zadaj hladane slovo: ahoj

Hladane slovo 'ahoj' sa nachadza v:
/root/folder/subor1
/root/folder/subor2

Hladane slovo 'ahoj' sa nenachadza v:
/root/folder/subor3
Napísať odpoveď