Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Software
>
FileMaker und ShellSkript
FileMaker und ShellSkript
dogsch
18.05.21
10:02
Hallo,
ich versuche das angehängte ShellSkript in FileMaker zu bringen, damit das dann von dort dort aus über "AppleSkript ausführen" - "do shell script..." ausgeführt wird.
Jedoch scheint es irgendwie Probleme bei der Variablenübergabe zu geben.
Kann mir hier jemand helfen?
Danke & Gruß
OttoGeorg
Hilfreich?
0
Kommentare
dogsch
18.05.21
10:07
in FileMaker sieht das Skript dann so aus:
Hilfreich?
0
nane
18.05.21
10:17
Das "fi" zum Schluss soll "if" heissen oder?
Hast Du das erweiterte Zugriffsrecht "fmextscriptaccess" aktiviert?
„Das Leben ist ein langer Traum, an dessen Ende kein Wecker klingelt.“
Hilfreich?
-1
Wellenbrett
18.05.21
10:22
Mir fällt auf, dass die Anführungszeichen, die der Filemaker-Interpreter direkt auswerten muss (z.B. die in der Pfadangabe in der ersten Zeile) die gleichen sind, wie die inneren, die erst später in der Shell interpretiert werden. Möglicherweise führt das als Nebenwirkung zu Problemen bei der Identifizierung der Variablen.
Hilfreich?
+2
Wellenbrett
18.05.21
10:25
nane
Das "fi" zum Schluss soll "if" heissen oder?
Bin auch erst darüber gestolpert. "man fi" listet ihn aber als "eingebauten" Befehl auf.
Hilfreich?
0
vasquesbc
18.05.21
10:37
nane
Das "fi" zum Schluss soll "if" heissen oder?
Das ist schon korrekt, so:
„Allwissend bin ich nicht; doch viel ist mir bewußt.“
Hilfreich?
+1
dogsch
18.05.21
11:50
@nane - hmmm, diesen Punkt sehe ich garnicht (siehe Bildchen im Anhang)...
Hilfreich?
0
nane
18.05.21
12:17
dogsch
Scheint in dieser Version "fmscriptdisabled" zu sein. hmmmm ... kenne ich so nicht. Diese
Hinweise wurden umgesetzt?
alle
Interessant, wie aus einem "if" ein "fi" wird, danke für den Hinweis, kannte ich nicht.
„Das Leben ist ein langer Traum, an dessen Ende kein Wecker klingelt.“
Hilfreich?
0
ttwm
18.05.21
15:57
Klappt das überhaupt, eine AppleScript-Variable so in eine Shell-Variable zu überführen? Woher soll die Shell wissen, dass in AppleScript eine Variable mit diesem Namen deklariert wurde…
Sieht für mich auf den ersten Blick strange aus (evtl. bin ich aber auch auf einem steinalten Stand).
Meiner Einschätzung nach müsste alles hinsichtlich derPfad AppleScript-technisch mit " & derPfad & " in die do shell script-Anweisung eingebunden werden, damit das Sinn ergibt.
Ich lass mich aber auch steinigen, wenn ich Stuss rede
Hilfreich?
+1
Peter Eckel
18.05.21
16:56
Blöde Frage meinerseits: Ist die Ausgabe "Dir [NOT] prsent" wichtig?
Wenn Du die nicht wirklich brauchst
, würde es nämlich auch
/bin/mkdir -p "/Volumes/GoogleDrive/MeineAblage/testblabla"
tun.
Dein Code ist (abgesehen von der Ausgabe) unnötig viel komplizierter.
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
0
MikeMuc
18.05.21
17:07
ttwm
Nein, das ist überhaupt kein Stuß sondern zu 100% korrekt.
Manchmal helfen aber auch einfache Anführungszeichen um die Syntax zu vereinfachen. Wichtig wird das, sobald Leerzeichen im Pfad / Dateinamen auftauchen sollten. Beim Mac treten die ja häufig auf, nur fanatische Bashscripter nehmen oft da keine Rücksicht drauf und dann laufen manche Scripte auf einmal nicht
Hilfreich?
0
dogsch
18.05.21
18:12
@Peter Eckel - oh Du mein Held!
Vielen Dank!
Eigentlich waren auch die Abfrage nur als Sicherheitsfeature gedacht, damit nichts überschrieben wird.
Hilfreich?
0
dogsch
18.05.21
18:23
obwohl, ganz so heldig ist es dann doch nicht - ich brauche ja doch eine Parameterübergabe, denn es soll in einem Skript Dokumente in Kundenordner abgelegt werden und dieser Teil des Skripts soll dann eben prüfen ob ein Ordner "Kundenname_Kundennummer" (aus den entsprechenden Feldern) vorhanden ist und wenn nicht einen solchen erstellen.
Hilfreich?
0
Peter Eckel
18.05.21
18:28
dogsch
obwohl, ganz so heldig ist es dann doch nicht - ich brauche ja doch eine Parameterübergabe, denn es soll in einem Skript Dokumente in Kundenordner abgelegt werden und dieser Teil des Skripts soll dann eben einen Ordner "Kundenname_Kundennummer" (aus den entsprechenden Feldern) ablegen.
Ja, aber ob Du den Pfad für das Verzeichnis dem Script übergibst oder das Script wegläßt und es mit in die Kommandozeile für das mkdir-Kommando schreibst ist eigentlich ziemlich egal, oder?
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
+1
dogsch
19.05.21
10:40
@Peter Eckel - sorry, ich verstehe nicht was Du meinst.
Siehe Anhang - das funktioniert leider nicht...
Hilfreich?
0
ttwm
19.05.21
11:12
Ich habs im Scripteditor (Big Sur) jetzt ausprobiert…
do shell script "mkdir \"derOrdner\""
greift nicht auf die AppleScript-Variable "derOrdner" zu, sondern möchte ein Verzeichnis namens "derOrdner" erstellen…
Was funktioniert (wie schon weiter oben von mir angedeutet):
set derOrdner to "~/Desktop/Test/Test2"
do shell script "mkdir " & derOrdner
Ergebnis: im vorhandenen Ordner Test wird ein neuer Ordner Test2 angelegt.
Weiteres Problem bei Deiner Verzeichnisangabe (deswegen bin ich auf die Schnelle auf ~ im Pfad zu derOrdner ausgewichen): "Macintosh HD" enthält Leerzeichen und produziert in der Shell dadurch Fehler.
Hilfreich?
+1
Peter Eckel
19.05.21
11:34
dogsch
@Peter Eckel - sorry, ich verstehe nicht was Du meinst.
Siehe Anhang - das funktioniert leider nicht...
Geständnis meinerseits: Ich habe wirklich keine Erfahrung mit AppleScript, in Sachen "Interface" kann ich Dir da also nicht helfen.
Was ich meinte: Wenn Du es schaffst, einen Parameter an Dein Script zu übergeben (der Hinweis von ttwm unten könnte vielleicht helfen), dann kannst Du auch einen an das einfache "mkdir -p" übergeben. Da ist das Script nur ein Umweg, den Du nicht brauchst und der die Dinge schwieriger macht als sie sein müssen.
ttwm: Hast Du mal
set derOrdner to "/Macintosh HD/Users/username/Desktop/blabla"
do shell script "mkdir \"" & derOrdner & "\""
versucht? Oder wie auch immer man in AppleScript Anführungszeichen maskiert?
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
+1
dogsch
19.05.21
14:59
@ttwm - ok, so klappt es soweit - Danke!
Mein Problem ist es jedoch, das auf dem Server (Google Drive) die Ordner leider mit Leerzeichen sind - "/Volumes/Google Drive/Meine Ablage" bzw. "/Volumes/Google Drive/Geteilte Ablage" und darauf habe ich leider keinen Einfluß - seufz...
Hilfreich?
0
dogsch
19.05.21
15:05
@Peter Eckel - das klappt leider nicht (hatte ich bereits versucht), da kommt die Fehlermeldung:
"mkdir: /Macintosh HD/Users/username/Desktop/ No such file or directory"
Hilfreich?
0
ttwm
19.05.21
15:32
Vielleicht hilft Dir das Beispiel mit "quoted form of the POSIX path" ein wenig weiter (bei Pfad mit Leerzeichen) - mangels GoogleDrive kann ich da nicht vollkommen mitprobieren (wenn aber alles nichts hilft, installier ich mir das halt noch):
set derOrdner to "/Volumes/Catalina/Users/ttwm/Documents/bla ba"
set derOrdner to quoted form of the POSIX path of derOrdner
do shell script "mkdir " & derOrdner
EDIT: ich erstelle den Code immer nur im ScriptEditor (diesmal unter Catalina), ob der liebe FileMaker nochmal eine zusätzliche Hürde reinwirft, kann ich leider nicht testen.
Hilfreich?
0
Peter Eckel
19.05.21
15:38
dogsch
@Peter Eckel - das klappt leider nicht (hatte ich bereits versucht), da kommt die Fehlermeldung:
"mkdir: /Macintosh HD/Users/username/Desktop/ No such file or directory"
Mein Fehler möglicherweise ... es muß natürlich "mkdir -p " heißen. Und bei "username" mußt Du Deinen Benutzernamen eintragen ...
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
0
Peter Eckel
19.05.21
16:26
Also nochmal komplett und hoffentlich richtig mit der Verbesserung von ttwm:
set derOrdner to "/Users/dirkschiemann/Desktop/blabla"
set derOrdner to quoted form of the POSIX path of derOrdner
do shell script "/bin/mkdir -p " & derOrdner
(und ja, jetzt hat das f***ing Webfrontend wieder irgendwelche Umbrüche eingefügt
)
Ich habe das gerade mal bei mir sinngemäß getestet und es geht.
Blöde Frage: Kann AppleScript nicht selbst Ordner anlegen?
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
+1
dogsch
19.05.21
18:10
Heureka - es funktioniert und auch mit Leerzeichen im Pfad!!!
Vielen Dank für die Geduld und Ausdauer...
Hilfreich?
+2
MikeMuc
19.05.21
19:28
ttwm
Weiteres Problem bei Deiner Verzeichnisangabe (deswegen bin ich auf die Schnelle auf ~ im Pfad zu derOrdner ausgewichen): "Macintosh HD" enthält Leerzeichen und produziert in der Shell dadurch Fehler.
Wie ich oben schon schrieb: Den Pfad in einfache Hochkommas setzen (Die ' fehlen bei Peters "kürzester" Lösung) oder eben "Quoted Form" verwenden.
set derOrdner to "/Macintosh HD/Users/username/Desktop/blabla"
do shell script "mkdir '" & derOrdner & "'"
Dann dürfen die \" entfallen. Um sowas besser nachvollziehen zu können, ist es besser, das komplette Script erst in einer Formel in ein extra Feld zu evaluieren und dann dieses dem Scriptschriit zur Ausführung vorzusetzen. So kann man das Ergebnis der Formal erstmal in ein Fenster des Scripteditors kopieren und dort testen.
Hilfreich?
0
dogsch
20.05.21
09:03
@MikeMuc - auch Dir Danke!
Hilfreich?
+1
ttwm
20.05.21
15:40
Peter Eckel
Blöde Frage: Kann AppleScript nicht selbst Ordner anlegen?
Doch, AppleScript kann auch Ordner anlegen. Der Haken dabei: nach einem OS-Update darf man sich nie in Sicherheit wiegen, dass Scripte – die übertrieben gesagt über "addiere 1+1" hinausgehen – auch noch reibungslos laufen.
Hilfreich?
0
Peter Eckel
20.05.21
18:01
ttwm
Doch, AppleScript kann auch Ordner anlegen. Der Haken dabei: nach einem OS-Update darf man sich nie in Sicherheit wiegen, dass Scripte – die übertrieben gesagt über "addiere 1+1" hinausgehen – auch noch reibungslos laufen.
OK, danke, das beruhigt mich irgendwie. Andererseits habe ich, inspiriert durch Deinen Hinweis, gerade mal geschaut, wie das geht ... gruselig. Ich bin ziemlich froh, daß ich meine Brötchen nicht mit AppleScript verdiene
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Leak aus macOS Sequoia: Apple bestätigt neuen M...
Vor 10 Jahren: 3 Milliarden für Beats
Apples interne Einschätzung: Zwei Jahre Rücksta...
Test Apple Mac mini M4
Gegenüberstellung: AirPods 4 vs. AirPods Pro 2
Verwarnung an Apple: Verbotenes Geoblocking in ...
Mac mini mit M4
Apples Eskalationskurs und Gebühren-Wirrwarr