2017-10-20 4 views
-2

In Looper (auf Jenkins gebaut), musste ich Shell-Skripte im XML-Format definieren, um einen Job auszuführen.Syntax zu prüfen, ob dir existiert dann entfernen funktioniert nicht in yml Datei

Ich bin ein Anfänger in YAML. Während alle anderen Befehle wie Echo, funktioniert wget. Wenn Sie überprüfen, ob ein Ordner vorhanden ist, entfernen Sie das Verzeichnis und es wird ein Fehler ausgegeben, wenn ich den Looper-Job ausführen möchte.

Ich habe fließt in YAML-Datei definiert und in einem Fluss, gab ich die unterhalb der Linie zu überprüfen, ob dieser Ordner dann

entfernen existiert
- [[ -d "$WORKSPACE/codometer-runner" ]] && rm -r $WORKSPACE/codometer-runner 

Es wird mir unten Fehler geben:

erwartet alphabetisches oder numerisches Zeichen, aber gefunden & 10:06:00 in 'Leser', Zeile 34, Spalte 47: 10:06:00 ... ARBEITSBEREICH/Codometer-Läufer "]] & & rm -r $ ARBEITSBEREICH/Codometer-Läufer 10:06:00^

Können mir einige bitte sagen, wie sonst kann ich überprüfen, ob Ordner in YAML existiert?

+0

YAML ist eine generische Auszeichnungssprache. Sie sollten Ihre Frage neu formulieren. –

Antwort

1

In YAML startet [ eine Flusssequenz. Daher können Sie keinen einfachen Skalar haben, der mit [ beginnt. Sie haben mehrere Möglichkeiten:

  • einen Block Skalar Verwendung:

    - >- 
        [[ -d "$WORKSPACE/codometer-runner" ]] && rm -r $WORKSPACE/codometer-runner 
    

    (Der > startet einen gefalteten Block Skalar, der nachfolgende - sagt YAML nicht den Newline anhängen).

  • Einzel-Zitat das skalare:

    - '[[ -d "$WORKSPACE/codometer-runner" ]] && rm -r $WORKSPACE/codometer-runner' 
    
  • Doppel-Zitat das skalare:

    - "[[ -d \"$WORKSPACE/codometer-runner\" ]] && rm -r $WORKSPACE/codometer-runner" 
    

    Da die skalare doppelte Anführungszeichen enthält, müssen Sie sie entkommen.

+0

fand die Antwort..Danke. – user3773712

Verwandte Themen