myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Bash Skript mit SVN Befehlen (https://mygully.com/showthread.php?t=2664590)

Gun_der 23.07.12 07:29

Bash Skript mit SVN Befehlen
 
Hey Leute ich benötigt eure Hilfe.
Ich habe mich vor einigen Tag mal ein wenig mit Bash-Skripten beschäftigt. Ich würde gerne einige Befehle von SVN in ein Skript einarbeiten. Ich bekomme aber immer irengwelche Fehler und habe so überhaupt keine Ansatzpunkt für das eigentliche Problem (gut ja demnach sitzt das eigentliche Problem vor der Tastertur - sonst würde ich ja auch nicht fragen ;-) )

Ich kann ja mal was ganz billiges posten^^

Code:

#!/bin/bash
VERZ="d:/development/workspace/${1}"
CMD="svn info ${VERZ}"
$CMD

Fehler: svn: Error resolving case of 'd:\development\workspace\Test

Was habe ich falsch gemacht?

slahn 23.07.12 09:57

Funktioniert es ohne Skript? Denn eigentlich hat SVN ein Problem damit, den Pfad aufzulösen. So etwas kann z.B. bei symbolischen Links auftreten. Gib doch einfach mal in deine Bash "svn info d:/development/workspace/Test" ein. Wenn da der gleiche Fehler kommt, dann hast du eben ein Problem mit dem Pfad und SVN aber nicht mit dem Skript.

Gun_der 23.07.12 10:11

Wenn ich den Aufruf direkt in die Bash eingebe führt er den Befehl aus. Es kommt kein Fehler.

Hat das was mit den "/" bzw. "\" zu tun?
In der Error-Aufschrift ist ja ein "\" zu sehen. Wenn ich svn info d:\...\Test aufrufe kommt auch ein Fehler: svn '.' is not a working copy.

slahn 23.07.12 11:11

"\" dient in der bash als Escape-Sequenz. "d:\...\Test" wird daher wahrscheinlich als "d:..est" gelesen.

Schreib mal in dein Skript und in deine Shell "pwd" rein, damit gibt er das aktuelle Verzeichnis aus. Was gibt er aus?
Ich glaube fast (da du ja Windows hast), dass du für die SVN Befehle eine eigene Shell hast und mit "#!/bin/bash" einfach die falsche Shelle verwendest (die keine Windows Festplattenstrukturen unterstützt).

Gun_der 23.07.12 11:38

Ok also wenn ich in die Bash "pwd eingeben kommt da das aktuelle Verzeichnis raus.
/d/workspace/

Wenn ich das ins Skript eintrage:
Code:

#!/bin/bash
#VERZ="d:/development/workspace/${1}"
#CMD="svn info ${VERZ}"
"pwd"
#$CMD

Gibt er das aus:
./info.sh: line 4: $'pwd\r': command not found


Bei dieser Version des Skriptes:
Code:

#!/bin/bash
#VERZ="/d/workspace/${1}"
CMD="svn info $1"
#"pwd"
${CMD}

und dem Aufruf: ./info.sh Test

- das shellskript befindet sich in dem gleichen Verzeichnis wie "Test".
Fehlermeldung:
«vn: Fehler beim Ermitteln der Groß-/Kleinschreibung von »Test

slahn 23.07.12 15:42

"pwd" gehört ohne Anführungszeichen in das Skript ... die hab ich nur der Übersichtlichkeit (zur Abgrenzung als Befehl) gemacht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.