User:Ulaaneot: Difference between revisions
From ICO wiki
Jump to navigationJump to search
No edit summary |
|||
Line 40: | Line 40: | ||
</source> | </source> | ||
== | == Bash Questi õige lahendus == | ||
Questi lahendus, mis vastab Margus Ernitsa poolt parandatud questile. | |||
Script kirjutab <title></title> blokkide vahele jääva info .html faili. | |||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
# Autor: Urmo Laaneots | # Autor: Urmo Laaneots | ||
# Versioon: 0.1 | # Versioon: 0.1 | ||
# Quest 26 | |||
# Skript otsib üles kõik .html failid ja kirjutab faili esimese rea ja aadressi faili failid.html. | # Skript otsib üles kõik .html failid ja kirjutab faili esimese rea 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 | ||
FILENAME=failid.html | FILENAME=failid.html | ||
Line 56: | Line 64: | ||
</head> | </head> | ||
<body>" > $FILENAME | <body>" > $FILENAME | ||
# `Otsime kõik .html failid süsteemist ja paneme need | # `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 | |||
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 | # Lõpetame .html faili | ||
echo "</body> | echo "</body> | ||
</html>" >> $FILENAME | </html>" >> $FILENAME | ||
# Teavitame kasutajat scripti töö lõpetamisest | |||
# Teavitame kasutajat | |||
echo "Done!" | echo "Done!" | ||
</source> | </source> |
Revision as of 16:02, 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: 0.1
# Quest 26
# Skript otsib üles kõik .html failid ja kirjutab faili esimese rea 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!"