Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
eimer
- Beiträge: 77
- Registriert: 09.11.2005 12:55:49
- Wohnort: Endingen a.K.
Beitrag
von eimer » 06.10.2008 19:15:48
HI,
ich bastel an einem Code doch der will nicht funktionieren.
Erstmal der Richtige Code:
Code: Alles auswählen
#! /bin/bash -x
# myunrar soll automatisch einen Ordner erstellen mit richtigem Datei Namen und entpackte Datei im Ordner richtig bennen
Fname=${1:=""}
InpName=${2:=""}
CDnr=${3:=""}
Path=`dirname $2`/
echo -e "Filmbezeichnung: $Fname"
echo -e "Inputbezeichnung: $InpName"
echo -e "Pfad: $Path"
if [ $1="" || $3=""] then
echo -e myunrar Film CDNr. InpFile
else
fi
if [ $CDnr="" ] then
OutpName=${Fname}.avi
echo - e "Ausgabebezeichnung: $OutpName"
mkdir -p /Entertainment/Filme/$Fname && unrar x $InpName /Entertainment/Filme/$Fname && cd /Entertainment/Filme/$Fname && mv *.avi $OutpName && rm -r $Path
echo -e "Pfadbezeichnung: /Entertainment/Filme/$Fname \r\n"
else
OutpName=${Fname}_CD${CDnr}.avi
echo "Ausgabebezeichnung: $OutpName"
mkdir -p /Entertainment/Filme/$Fname && unrar x $InpName /Entertainment/Filme/$Fname && cd /Entertainment/Filme/$Fname && mv *.avi $OutpName && rm -r $Path
echo -e "Pfadbezeichnung: /Entertainment/Filme/`$Fname`\r\n"
fi
cd .. && ls -l
Folgende Probleme treten auf, leider bin ich totaler Anfänger und blick nichts was da steht.
Code: Alles auswählen
myunrar peter peter-xvid.rar
+ Fname=peter
+ InpName=peter-xvid.rar
/usr/local/bin/myunrar: line 6: $3: cannot assign in this way
++ dirname peter-xvid.rar
+ Path=./
+ echo -e 'Filmbezeichnung: peter'
Filmbezeichnung: peter
+ echo -e 'Inputbezeichnung: peter-xvid.rar'
Inputbezeichnung: peter-xvid.rar
+ echo -e 'Pfad: ./'
Pfad: ./
/usr/local/bin/myunrar: line 13: syntax error near unexpected token `else'
/usr/local/bin/myunrar: line 13: `else'
Hoff mir kann wer helfen.
Mfg eimer
Gi´me hope Juana.....
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 06.10.2008 19:28:30
hier möchtest du den Defaultwert "" verwenden, wenn $1..$3 nicht definiert ist:
wenn du aber ${1:=""} verwendest, würdest du der Variablen $1 den Wert "" zuweisen, was bei den postitional Parametern so nicht geht.
einen leeren IF oder ELSE-Zweig mag die Shell auch nicht:
Ich habe jetzt nur die Fehler vom xtrace betrachtet, also sind noch möglicherweise weitere Fehler in dem Script
Gruß
gms
-
eimer
- Beiträge: 77
- Registriert: 09.11.2005 12:55:49
- Wohnort: Endingen a.K.
Beitrag
von eimer » 07.10.2008 14:15:27
Irgendwie will er das alles nicht schlucken, ich kann bei dem
else
fi
keinen Fehler finden, auch wenn ich echo "hallo" eintrage spuckt er mir ein fehler aus
Code: Alles auswählen
/usr/local/bin/myunrar: line 13: syntax error near unexpected token `else'
/usr/local/bin/myunrar: line 13: `else'
Außerdem funktioniert das mit dem Pfad leider auch nicht, obwohl das mal funktioniert hat, ich weiß nur nicht warum das nicht mehr geht.
??
Hilfe
Gi´me hope Juana.....
-
Duff
- Beiträge: 6321
- Registriert: 22.03.2005 14:36:03
- Wohnort: /home/duff
Beitrag
von Duff » 07.10.2008 15:02:01
Du darft in der if-else Anweisung den else Block nicht verwenden, wenn du keinen else-Zweig hast.
if ....
then
irgendwas
fi
--> wenn du keinen else-Zweig hast
Oh, yeah!