So übergeben Sie ein Argument an eine bash
Shell-Funktion SendTo
(oder per Drag & Drop). Als Beispiel habe ich das eingebaute verwendet echo
. Legen Sie das Ziel für den Link im SendTo
Ordner wie folgt fest:
C:\cygwin\bin\bash.exe -c "echo Argument: $0; read"
Hier $0
steht für das erste Argument nach der gegebenen Befehlszeile a), dh der vollständige Dateiname der Datei, in der die sendto-Aktion ausgeführt wurde. read
hält das Fenster offen, damit Sie die Nachricht lesen können. (Ich habe das mit cygwin's getestet bash
, aber ich denke, dass mingw's auch bash
funktionieren sollte.)
In Ihrem Fall sollte das Ziel sein
c:\MinGW\msys\1.0\bin\bash.exe -c "/path/to/your/script.sh $0; read"
Jetzt kann Ihr Skript den Dateinamen verarbeiten. Beachten Sie jedoch, dass der Dateiname als erstes Argument an das Skript übergeben wird$1
. Innerhalb des Skripts wird auf den Dateinamen verwiesen .
Zum Schluss noch zwei Screenshots als Zusammenfassung:
a) Sie haben zitiert man bash
:
-c string
Wenn die Option -c vorhanden ist, werden Befehle aus string gelesen. Wenn nach der Zeichenfolge Argumente vorhanden sind, werden diese den Positionsparametern zugewiesen, beginnend mit $ 0.
Um dies zu verstehen, verwenden Sie zB die folgende Zielzeile:
C:\cygwin\bin\bash.exe -c "echo This is $0; read" Foo Bar Baz
Dies wird gedruckt This is Foo
, während
C:\cygwin\bin\bash.exe -c "echo This is $2; read" Foo Bar Baz
wird drucken This is Baz
. Die "Zeichenfolge" ist also alles zwischen den Apostrophen und Foo Bar Baz
die Argumente.