User:Ulaaneot

From ICO wiki
Revision as of 17:04, 27 May 2011 by Ulaaneot (talk | contribs)
Jump to navigationJump to search

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!"