• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Sprichwörter und Redewendungen sind das Thema unseres Monatswettbewerbes. Nähere Informationen dazu gibt es natürlich auch, und zwar auf dieser Seite ---> Klick

Anfängerfrage zum diff-Befehl im Automator

Thomas2015

Erdapfel
Registriert
24.08.15
Beiträge
2
Hallo zusammen,

als Anfänger in Sachen Automator hänge ich gerade an folgendem Problem:
Ich möchte im Automator einen Vergleich von zwei Verzeichnissen durchführen. Dazu habe ich einen Workflow angelegt, der bisher nur die beiden Elemente "Angegebene Finder-Objekte abfragen" und darunter "Shell-Skript ausführen" enthält. Ins erste Element möchte ich die beiden zu vergleichenden Verzeichnisse ziehen und die Verzeichnisnahmen dann an das Shell-Skript übergeben, das im ersten Schritt nur wie folgt aussieht:

diff -rq $1 $2

Das Ergebnis des Vergleichs soll dann im Ergebnisse-Fenster des Elements angezeigt werden. Später möchte ich die Aktion weiter ausbauen.

Im Element "Shell-Skript" ausführen haben ich als Shell "bin/bash" angegeben. Als Eingabe habe ich "als Argumente" übergeben gewählt.
Das obige Skript funktioniert im Terminal, das habe ich geprüft. Lasse ich die Automator-Aktion laufen, bricht diese mit einem Fehler ab (s. Screenshot). Ich habe keine Ahnung, wie ich hier weiterkomme. Den Vormittag habe ich bereits mit googeln verbracht...
Das Problem kann doch eigentlich nur ganz einfach zu lösen sein und ich habe einen Knoten im Hirn.... vielen Dank für ein paar hilfreiche Tipps.

Viele Grüße,
Thomas

screenshot.jpg
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.507
Das Programm "diff" ist so gemacht, dass es als Fehlerzustand gilt, wenn Unterschiede zwischen den beiden Ordnern vorliegen. Jeder Unterschied führt damit zum Abbruch der Automator-Aktion und Wegwerfen der Programmausgabe.

Du müsstest das Shell-Skript so gestalten, dass der letzte Befehl immer fehlerfrei ausgeführt wird, egal zu welchem Ergebnis diff kommt.
Ein Beispiel wäre

diff -rq "$1" "$2" ; echo
 
  • Like
Reaktionen: Thomas2015

Thomas2015

Erdapfel
Registriert
24.08.15
Beiträge
2
Hallo Marcel,
besten Dank für die Hinweis, das war mir nicht bekannt!
Jetzt läuft es und ich kann weiterbasteln :)