Übergeben Sie den absoluten Dateipfad an die Option --args des Open-Befehls OSX

354
willpett

Ich habe ein Skript /usr/local/bin/foo, das eine App mit Befehlszeilenargumenten öffnet:

#!/bin/bash  open -a Foo.app --args $@ 

Das Problem ist, wenn ich renne

foo bar.txt 

Das Ergebnis wird Foo.appgeöffnet und sagt, dass ich bar.txtnicht gefunden werden kann. Jedoch,

foo /absolute/path/to/bar.txt 

funktioniert wie erwartet.

Gibt es eine einfache Möglichkeit, absolute Pfade automatisch an die --argsOption des Befehls open zu übergeben?

0

1 Antwort auf die Frage

0
willpett

Hier ist die einfachste Lösung, die ich finden könnte

#!/bin/bash for i in $@ do ARGS=`realpath $i`" $ARGS" done  open -a Foo.app --args $ARGS 
Ich würde vermuten, dass dies mit Leerzeichen auf dem Pfad fehlschlägt slhck vor 9 Jahren 0
Ja. Realpath mag keine Leerzeichen :( willpett vor 9 Jahren 0
Nein, es ist wahrscheinlich lösbar, wenn ich es richtig zitiere, aber ich weiß nicht, wo ich sie nur ansieht, wo sie hingestellt werden :) slhck vor 9 Jahren 0