Я пытаюсь запустить эту команду Apple Script с osascript
в моем скрипте Go, и я получаю ошибку 0:1: syntax error: A unknown token can’t go here. (-2740)
.
Эта команда прекрасно работает при запуске в Терминале!
/usr/bin/osascript -e 'on run {f, c}' -e 'tell app "Finder" to set comment of (POSIX file f as alias) to c' -e end "/Users/computerman/Desktop/testfile.png" "Hello, World"
Мой скрипт Go на самом деле выводит приведенную выше строку, и я могу буквально вырезать и вставить ее в Terminal, и она работает.Однако, запуская сам скрипт Go, я получаю вышеупомянутую ошибку.
Пожалуйста, помогите!
Это на MacOS 10.14.4 (18E2034).Я попытался заменить fmt.Sprintf более простой строкой на \ "Finder \", и у меня возникла та же проблема.
import (
"fmt"
"log"
"os"
"os/exec"
)
func main() {
filepath := "/Users/computerman/Desktop/testfile.png"
comment := "Hello, World"
onrun := "'on run {f, c}'"
command := fmt.Sprintf(`'tell app "Finder" to set comment of (POSIX file f as alias) to c' -e end "%s" "%s"`, filepath, comment)
log.Println("/usr/bin/osascript", "-e", onrun, "-e", command)
cmd := exec.Command("/usr/bin/osascript", "-e", onrun, "-e", command)
cmd.Stderr = os.Stderr
cmd.Stdout = os.Stdout
cmd.Stdin = os.Stdin
err := cmd.Run()
if err != nil {
log.Println(err)
}
}
Когда я делаю go run main.go
, я получаю это в Терминале
2019/04/17 13:02:28 exit status 1
Я ожидаю вывод
Hello, World
И никаких ошибок.Кроме того, поле комментария в файле будет обновлено с помощью Hello, World.