Um meine Daten in strukturierter Form halte ich oft tief Ordner-Bäume am Ende mit, wo es ein wenig lästig sein kann in so schrieb ich eine Funktion zurück und vorwärts gehen eine HTML zu erzeugen Baum des cwd:Vermeiden Anweisungen in if-Anweisungen Fehler erhöhen, wenn falsche bash
function toc_date {
# Get the date in _YYYY-MM-DD format
D=`date +_%F`
# Build the tree, -H flag to output as HTML,
# . to use current dir in <a href> link
tree -H . >> toc$D.html
}
Das Problem entstand, als ich eine Follow-up-Funktion schrieb alte Ordner-Baum-Dateien zu entfernen, und zwar in der ersten ausdr von [ "$(ls -b toc_* | wc -l)" -gt "0" ]
, die einem Fehler gibt, wenn keine Dateien auch gefunden werden, obwohl es Wert ist ist korrekt auf 0 gesetzt, was die if-Anweisung überspringen sollte (richtig?). Der Code funktioniert wie vorgesehen, aber Fehlermeldungen sind normalerweise kein Zeichen für guten Code. Hoffen wir also, dass jemand Verbesserungen vorschlagen kann?
function old_stuff {
# Number of lines i.e. files matching toc_*
if [ "$(ls -b toc_* | wc -l)" -gt "0" ]
then
# Show files/directories so we don't remove stuff unintended
ls toc_*
while true; do
read -p "Do you wish to remove old TOCs? [Y/n]" yn
case $yn in
[Nn]*) break;;
[Yy]*) rm toc_*; break;;
*) echo "Please answer yes or no.";;
esac
done
fi
# Go ahead and generate the html tree
toc_date
}
Dank Fehler zu vermeiden! Ich mag besonders die zweite Option, da sie den Fehler ls "keine solche Datei oder dieses Verzeichnis" umgeht, anstatt sie umzuleiten. – edager