Tworzę usługę automatora, a pierwsza część pobiera pliki i RAR-y za pomocą skryptu bash
Tak więc w Automatorze mam akcję Get Specified Finder, aby przetestować przepływ pracy, a następnie skrypt bash
F=''
for i in "$@"; do
F="$F \"${i//\"/\\\"}\""
done
/usr/local/bin/rar a ~/archive.rar $F
więc po prostu pobiera ścieżki plików, umieszcza wokół nich cytaty, a następnie uruchamia komendę RAR ze wszystkimi plikami jako argumentami. Kiedy to uruchomię, automat daje mi błąd
Nie można otworzyć „/Users/user/test.txt” Brak takiego pliku lub katalogu
Nie można utworzyć ~ / archive.rar Brak takiego pliku lub katalogu
Nie ma pojęcia, dlaczego tak się dzieje. Kiedy dodaję echo do ostatniego polecenia
echo /usr/local/bin/rar a ~/archive.rar $F
Wyniki są dokładnie tym, czego potrzebuję. Mogę go skopiować i wkleić w terminalu i to działa.
Czy automatyzator uruchamia skrypty bash inaczej, niż uruchamia się w terminalu?
"$@"
rar bezpośrednio?
~
nie jest rozszerzany w cudzysłowie, więc potrzebujesz przynajmniej~/"archive.rar"
tam. I podejrzewałbym pewne problemy z obsługą przestrzeni i cytowaniem również$F
. Czy to działa, jeśli uruchamiasz go bezpośrednio w Terminalu?