Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
script mit fehlern

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nathan009
Gast





BeitragVerfasst am: 11. Mai 2010 9:10   Titel: script mit fehlern

ich bin nicht gut im scripte schreiben, noch am lernen
ich denke da sind mehr als ein Fehler drin
wie krieg ich die $user in die if schleife?
Code:

#datei mit alle usernamen anlegen
ls /home/ > user

#username in speicher
cat user | while read user; do

#Prüfen, ob die da datei /home/$user/puplic_html/index.html existiert
if test -r /home/$user/puplic_html/index.html
then
  echo $user > user-da
  cat /home/$user/puplic_html/index.html | grep '<title>' > titel
fi

;done

#username in speicher
cat user-da | while read user; do
cat titel | while read titel; do
#usernamen einsetzen
echo '
<b>'$user'</b><br>
<a href="http://bf.mw.de/~'$user'">'$titel'</a>
<br>
';done


Code:

 | grep '<title>'

erzeugt ja <title> Titel der jeweiligen Webseite </title>
wie kann ich die <title> entfernen

Das ergebnis soll html sein und so aussehen
HTML-Code:
Code:

<b>Benutzername</b><br>
Titel: <a href="Link_zur_Webseite'">Titel_der Webseite</a>
<br>

und davon viele untereinander
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 11. Mai 2010 10:25   Titel:

Erstmal solltest du die offensichtlichen Schreibfehler rausbauen z.b. puplic_html. Dann muss das ; vor dem "done" weg. ; brauchst du nur, wenn du mehrere Anweisungen auf einer Zeile hintereinanderweg schreiben willst. Die echo und die grep-Anweisung überschreiben den jeweils letzen Dateiinhalt, weil du > statt >> als Umleitung benutzt. So ist das sicher nicht gedacht. Das grep holt dir schließlich noch die ganze Zeile.

Schönheitsreperaturen: Das "do" kann auch auf eine eigene Zeile. Einrückungen Die Zwischendateien sind unnötig. cat ist ebenso unnötig. Der ganze zweite Teil ist unnötig.

Gegenvorschlag:
Code:

ls /home | while read user
do
  if [ -r /home/$user/public_html/index.html ]
  then
    titel=$(grep '<title>' </home/$user/public_html/index.html)
    echo '
      <b>'$user'</b><br>
      <a href="http://bf.mw.de/~'$user'">'$titel'</a>
      <br>'
  fi
done


Du willst aber sicher nur das, was zwischen den "<title>"-Tags steht in deiner Ausgabe haben. Das ist möglich, indem man zusätzlich "sed" bemüht. Allerdings ist das nicht wirklich übersichtlich. Du solltest überlegen, das gleich *alles* mit "awk' zu machen statt mit Shell+Grep+Sed. Der hat nämlich alles drin was du dafür brauchst und ist auch praktisch überall installiert.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy