#1 8. September 2008 Bash Script Hilfe Hi RRler habe ein kleines Problem mit meinem Bashscript! Also zur Geschichte, ich habe mir gedacht ich schmeiß mal wieder Dungeon Siege2 Broken World drauf, hab es mit Wine ohne probleme zocken können bis auf diese performance verluste die es mir manchmal schwer machen was zu sehen da es wie eine diashow ist! Also habe ich es mit Cedega versucht...alles hat geklappt bis auf eine kleine Sache: Wenn ich speicher erstellt er mir 2 Dateien namlich 1. NAMEdesCHARS.ds2party und NAMEdesCHARS.ds2radar nur die kann er nicht umbennen sie heißen nur .ds2party und .ds2radar. Stören tut es mich eigentlich nicht weil ich kann ja speichern, ABER beim laden gibt es dann die Probleme, er kann es nämlich gar nicht er muss den namen davor haben. Wenn ich es dann vor dem start wieder umbenenne dann läd er auch ganz normal also kam ich zum schluss das ein bash script ziemlich hilfreich wäre! An sich sind die Grundbefehle für mich verständlich nur kam das Problem wenn ich es zweimal ausführen wären die dateien weg (werdet ihr gleich im quellcode sehen) also muss eine if funktion rein. So bin ich ja nicht blöd und habe vorher gegooglelt und auch bissi was gefunden, jetzt habe ich da was hinbekommen wo er mir aber in jeder Variante Fehler ausgibt! Code: #!/bin/bash dir1="/home/gater001/.cedega/DS2/c_drive/My Documents/My Games/Dungeon Siege 2 Broken World/Save/SinglePlayer/Elondir/" if [ -e $dir1".ds2party"] then rm $dir1"Elondir.ds2party" mv $dir1".ds2party" $dir1"Elondir.ds2party" fi if [ -e $dir1".ds2radar"] then rm $dir1"Elondir.ds2radar" mv $dir1".ds2radar" $dir1"Elondir.ds2radar" fi Als Fehler gibt er mir immer das hier aus: Code: [: 7: missing ] [: 13: missing ] Also nehme ich an da stimmt etwas am fi nicht wüsste aber absolut nicht was! hoffe ihr könnt mir helfen mfg gater001
#2 8. September 2008 AW: Bash Script Hilfe ach.. wollt mich nicht bedanken. wenn ich das richtig in erinnerung habe, musst du hinter den bedingungen im if teil nen semikolon machen... Code: #!/bin/bash dir1="/home/gater001/.cedega/DS2/c_drive/My Documents/My Games/Dungeon Siege 2 Broken World/Save/SinglePlayer/Elondir/" if [ -e $dir1".ds2party"] [b];[/b] then rm $dir1"Elondir.ds2party" mv $dir1".ds2party" $dir1"Elondir.ds2party" fi if [ -e $dir1".ds2radar"] [b];[/b] then rm $dir1"Elondir.ds2radar" mv $dir1".ds2radar" $dir1"Elondir.ds2radar" fi bin mir aber nicht sicher ^^ siehe auch: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_02.html
#3 8. September 2008 AW: Bash Script Hilfe Hey! Code: "$dir.etc" Die Variable musst/kannst mal in die Gaensefuesschen haun, glaub ich (ist schon laenger her, ausprobieren schadet nicht ^^) Mfg, Kolazomai
#4 8. September 2008 AW: Bash Script Hilfe so hab beides ausprobiert, keines davon geht auch nicht in kombination ?( weitere vorschläge? //edit: ja vergessen zu schreiben was ich alles ausprobiert habe: z.b. bei Code: $dir1".ds2party" habe ich folgende möglichkeiten ausprobiert Code: $dir1".ds2party" "$dir1"".ds2party" "$dir1".ds2party"" und das alles noch mit den simikolons
#5 8. September 2008 AW: Bash Script Hilfe Hey! Code: #!/bin/bash dir1="/home/gater001/.cedega/DS2/c_drive/My Documents/My Games/Dungeon Siege 2 Broken World/Save/SinglePlayer/Elondir" if [ -e "$dir1/.ds2party"] ; then rm "$dir1/Elondir.ds2party" mv "$dir1/.ds2party" "$dir1/Elondir.ds2party" fi if [ -e "$dir1/.ds2radar"] ; then rm "$dir1/Elondir.ds2radar" mv "$dir1/.ds2radar" "$dir1/Elondir.ds2radar" fi Mfg, Kolazomai
#6 9. September 2008 AW: Bash Script Hilfe Okey habs hinbekommen war nicht ganz so wie du gesagt hast Kazolomai: 1. muss dummerweise bei z.B. "$dir1/.ds2party" die Variable auch nochmal in " gesetzt werden also so: "$dir1""/.ds2party" 2. muss nach der bedingung ein leerzeicher vor dem ender der eckigen klammer Syntax: Code: #!/bin/bash dir1="/home/gater001/.cedega/DS2/c_drive/My Documents/My Games/Dungeon Siege 2 Broken World/Save/SinglePlayer/Elondir/" if [ -e "$dir1"".ds2party" ] ; then rm "$dir1""Elondir.ds2party" mv "$dir1"".ds2party" "$dir1""Elondir.ds2party" fi if [ -e "$dir1"".ds2radar" ] ; then rm "$dir1""Elondir.ds2radar" mv "$dir1"".ds2radar" "$dir1""Elondir.ds2radar" fi Und das ist nochmal die überarbeitete Version: Code: #!/bin/bash # Die Variable "direction" muss dem Pfad zu den Singleplayer Savegames enthalten, # der Variable "name" wird der Name des Charakters zugewiesen name="Elondir" direction="/home/gater001/.cedega/DS2/c_drive/My Documents/My Games/Dungeon Siege 2 Broken World/Save/SinglePlayer" dir1="$direction/$name/" if [ -e "$dir1"".ds2party" ] ; then rm "$dir1""$name"".ds2party" mv "$dir1"".ds2party" "$dir1""$name"".ds2party" fi if [ -e "$dir1"".ds2radar" ] ; then rm "$dir1""$name"".ds2radar" mv "$dir1"".ds2radar" "$dir1""$name"".ds2radar" fi BWs sind raus [X] Close