User:Ulaaneot: Difference between revisions
From ICO wiki
Jump to navigationJump to search
No edit summary |
|||
Line 50: | Line 50: | ||
#!/bin/bash | #!/bin/bash | ||
# Autor: Urmo Laaneots | # Autor: Urmo Laaneots | ||
# Versioon: 0 | # Versioon: 2.0 | ||
# Quest 26 | # Quest 26 | ||
# Skript otsib üles kõik .html failid ja kirjutab faili | # Skript otsib süsteemist üles kõik .html failid ja kirjutab faili pealkirja (<title></title>) ja aadressi faili failid.html. | ||
echo "Skript otsib süsteemist üles kõik .html failid ja kirjutab faili pealkirja (<title></title>) ja aadressi faili failid.html" | echo "Skript otsib süsteemist üles kõik .html failid ja kirjutab faili pealkirja (<title></title>) ja aadressi faili failid.html" | ||
# Määrame failinime, kuhu lõpptulemus kirjutatakse | # Määrame failinime, kuhu lõpptulemus kirjutatakse |
Revision as of 16:03, 27 May 2011
Lahendus 1 (arvestamiseks)
Versioon 1.0
Bash Quest oli koostatud vigaselt, sest .html faili esimesel real on tavaliselt <html> blokk.
Siiski on Questi esialgne lahendus kontrollitud ja töötab:
#!/bin/bash
# Autor: Urmo Laaneots
# Versioon: 1.0
# Skript otsib üles kõik .html failid ja kirjutab faili esimese rea ja aadressi faili failid.html.
# Määrame failinime, kuhu lõpptulemus kirjutatakse
FILENAME=failid.html
# Loome html faili alguse vastavalt W3 standarditele ja kirjutame selle faili
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">
<html>
<head>
<title>.html failid</title>
<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />
</head>
<body>" > $FILENAME
# `Otsime kõik .html failid süsteemist ja paneme need massiivi
files=( `find / -type f -name "*.html"` )
# Tsükkel, mis käib kõik massiivi liikmed läbi
for (( c=1; c<${#files[@]}; c++ )); do
# Loeme failide esimese rea ja paneme selle muutujasse
FIRSTLINE=`head -n 1 ${files[$c]}`
# Kirjutame faili esimese rea .html faili
echo "Faili esimene rida: <textarea>$FIRSTLINE</textarea><br />" >> $FILENAME
# Kirjutame faili aadressi .html faili
echo "Faili asukoht: <a href="${files[$c]}" target="_new">${files[$c]}</a><br />" >> $FILENAME
done
# Lõpetame .html faili
echo "</body>
</html>" >> $FILENAME
# Teavitame kasutajat scripti töö lõpetamisest
echo "Done!"
Bash Questi õige lahendus
Questi lahendus, mis vastab Margus Ernitsa poolt parandatud questile.
Script kirjutab <title></title> blokkide vahele jääva info .html faili.
#!/bin/bash
# Autor: Urmo Laaneots
# Versioon: 2.0
# Quest 26
# Skript otsib süsteemist üles kõik .html failid ja kirjutab faili pealkirja (<title></title>) ja aadressi faili failid.html.
echo "Skript otsib süsteemist üles kõik .html failid ja kirjutab faili pealkirja (<title></title>) ja aadressi faili failid.html"
# Määrame failinime, kuhu lõpptulemus kirjutatakse
FILENAME=failid.html
# Loome html faili alguse vastavalt W3 standarditele ja kirjutame selle faili
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">
<html>
<head>
<title>.html failid</title>
<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />
</head>
<body>" > $FILENAME
# `Otsime kõik .html failid süsteemist ja paneme need massiivi
files=( `find / -type f -name "*.html"` )
# Tsükkel, mis käib kõik massiivi liikmed läbi
for (( c=1; c<${#files[@]}; c++ )); do
# Loeme failide <title> bloki ja valime seal ainult pealkirja ning paneme selle muutujasse
TITLE=`grep -i "<title>" ${files[$c]} | cut -f 2 -d ">" | cut -f 1 -d "<"`
# Kirjutame faili pealkirja .html faili
echo "<i>Faili pealkiri:</i> <b>$TITLE</b><br />" >> $FILENAME
# Kirjutame faili aadressi .html faili
echo "<i>Faili asukoht:</i> <a href="${files[$c]}" target="_new">${files[$c]}</a><br />" >> $FILENAME
done
# Lõpetame .html faili
echo "</body>
</html>" >> $FILENAME
# Teavitame kasutajat scripti töö lõpetamisest
echo "Done!"