我需要从perl脚本打开.app文件,该文件将由Print过滤器调用。这个perl脚本做了很多其他的东西,但最后,我需要从一个文件夹打开.app。我在终端上尝试了命令“open /Applications/abc.app”并且它可以工作。我需要从Perl脚本做同样的事情。从Perl尝试下面但不起作用。知道问题出在哪里?也尝试过 - 打开“/Applications/abc.app”并打开(“/Applications/abc.app”);
错误是: 24/03/14 8:22:33.526 am open [5181]:spawn_via_launchd()失败,错误= 54 label = [0x0-0xca0ca] .abc path = / Applications / abc.app / Contents / MacOS / abc flags = 0 :LaunchApplicationClient.cp#990 LaunchApplicationWithSpawnViaLaunchD()q = com.apple.main-thread
24/03/14 8:22:33.526 am open [5181]:spawn_via_launchd()失败,errno = 54 label = [0x0-0xca0ca] .EFI.PrintMessenger path = / Applications / abc.app / Contents / MacOS / abc flags = 0
试图打开其他应用,例如chess.app或firefox.app。但同样的错误
答案 0 :(得分:1)
我刚写了一个小测试脚本:
use strict;
use warnings;
system qq(open -a Pages);
print qq(Yes, I'm such a fanboy, I have "Pages" on my system\n);
如果我的应用程序不在/Application
目录中,我需要使用目录名称为我的应用程序名称添加前缀。 open
命令采用.app
后缀。如果我愿意,我可以添加它。这也有效:
system qq(open -a /Application/Pages.app);
但是,我需要-a
让open
命令知道我正在谈论打开应用程序并且它不是文件。请记住/Applications/Pages.app
是一个目录,而不是一个文件。这就是为什么如果不使用-a
参数,OS X open命令将失败。