#!/bin/bash
for filenames in $(ls $1)
do
echo $filenames | grep "\.old$"
if [ ! $filenames = 0 ]
then
$(mv "$1/$filenames" "$1/$filenames.old")
fi
done
Also ich denke das meiste Skript funktioniert. Es ist beabsichtigt, die Ausgabe von ls für ein Verzeichnis zu übernehmen, das im ersten Parameter eingegeben wurde, und am Ende nach Dateien mit .old zu suchen. Alle Dateien, die nicht .old enthalten, werden umbenannt. Das Skript benennt die Dateien erfolgreich um, fügt jedoch eine Datei zu einer Datei hinzu, die bereits die Erweiterung enthält. Ich gehe davon aus, dass die If-Variable falsch ist, aber ich kann nicht herausfinden, welche Variable in diesem Fall verwendet werden soll.Fügen Sie .old zu Dateien ohne .old hinzu, die Probleme mit der zu verwendenden Variablen haben?
Antwort ist in dem Schlüssel, aber wenn jemand dies hier tun muß, ist eine noch einfachere Art und Weise:
#!/bin/bash
for filenames in $(ls $1 | grep -v "\.old$")
do
$(mv "$1/$filenames" "$1/$filenames.old")
done
Sie dies nicht tun brauche das '$ (...)', das deinen 'mv' cmd umgibt. Viel Glück. – shellter