在Mac上启动perl脚本的快速,便携方式(相当于Win on Win)

时间:2012-01-26 21:56:29

标签: perl bash batch-file applescript

我在一个存储库中共享了一个perl脚本,该存储库包含Mac和Windows计算机上的多个用户。它使用它对位于文件夹中的文件执行其工作。因为我经常运行它并且因为一些用户甚至不知道命令行是什么,所以我在目录中创建了一个批处理文件以便于启动。因为一些路径会有所不同,所以我把它变得便携了:

    ::figure out your directory path
    pushd %~dp0
    :: launch the script
    perl my_perl_script.pl
    popd

该批处理在Windows上完美运行,我将每个perl脚本放在每个项目文件夹中,并告诉我的用户只需“双击那个东西”。

如何在Mac上执行相同的操作?我不太了解bash,我无法弄清楚如何

1)让bash文件找出其目录路径,并且
   2)使bash成为Mac用户的简单“双击那个东西”可执行文件。

一个简单的Applescript会更好(我真的不知道Applescript ......)

感谢您的帮助。

编辑:谢谢,dj bazzie wazzie。我不想同时运行bash和applescript来让我的perl运行,但是我确实使用你的第一行来获得一个对我来说完美的AppleScript。

    set currentWorkingDirectory to do shell script "dirname " & quoted form of POSIX path of (path to me) 
    tell application "Terminal"
    set currentTab to do script "cd " & currentWorkingDirectory
    do script "perl xml2epub_3689_7KeysSpWellness.pl" in currentTab 
    end tell

1 个答案:

答案 0 :(得分:1)

使用AppleScript,您可以运行shell命令。假设您的bash文件位于脚本旁边,并且名为maintenance.sh,您的脚本将看起来像这样

set currentWorkingDirectory to do shell script "dirname " & quoted form of POSIX path of (path to me)
do shell script quoted form of (currentWorkingDirectory & "/maintenance.sh")

编辑:(我无法评论你的帖子,所以我改变了我的帖子) 对于像您这样简单的命令,您不需要终端应用程序。我可以理解一个正常工作的应用程序就足够了,但是对于一个更顺畅的脚本,我会将该命令放入do shell脚本中。所以你的per命令的代码就是这样的

set currentWorkingDirectory to do shell script "dirname " & quoted form of POSIX path of (path to me)
do shell script "perl " & quoted form of (currentWorkingDirectory & "/xml2epub_3689_7KeysSpWellness.pl")