Problem bei Shellskript

F

Frodo

Grünschnabel
Hey Leute,

ich soll ein Shellskript schreiben welches einen Verzeichnis, welches ich als Paramter angebe, rekursiv nach der Textdatei mit den meisten Wörtern durchsucht. Falls kein Paramter angegebn wird, soll er im Homeverzeichnis anfangen.

Meine Vorgehensweise

1. Verzeichnis identifizieren

$verzeichnis=$1
if (verzeichnis=""9
then
verzeinis=/home;
fi

(irgendwie klappt das nicht)

2. nach der Datei suchen mit den meistens Wörter
$laengeDesLaengstenWortes=0
$laengstesWort
find verzeichnis exec [
if (wc -c > laengeDesLaengstenWortes)
then
laengeDesLaengstenWortes0 wc -c;
laengstesWort=read filename
fi ;
So würde ich einfach mal vermuten, allerdings ist dies bestimmt falsch-

3. Ausgabe des Namens der DAtei
echo laengses Wort


Hoffe ich versteht was ich meine und Vielen Dank schonmal für die Hilfe.

lg Sebastian
 
Zuletzt bearbeitet:
Code:
#!/bin/bash
[ "$1" ] && Verzeichnis="$1" || Verzeichnis="$HOME"
find "$Verzeichnis" -name "*.txt" -type f -exec wc -w {} \; | sort -n | tail -1
 
Hey
Vielen Dank! geht ja kürzer als ich dachte.

Und es klappt!
 
Zuletzt bearbeitet:
Was macht [ "$1" ] eigentlich genau?
Guckt nach ob der String belegt ist?

lg S.
 
Kann man hier so gelten lassen. Tatsächlich ist es eine Kurzschreibweise des Bash-Builtins "test". Die Zeile tut das Gleiche wie:
Code:
if test "$1" != ""
then
  Verzeichnis="$1"
else
  Verzeichnis="$HOME"
fi
 

Ähnliche Themen

[gelöst] - for file in ... nur für bestimmte Endungen?

verzeichniss suche funktioniert nicht

bash esac problem

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

[Suche] - Hilfe bei der Überarbeitung eines bash-Scripts

Zurück
Oben