我在一个存储库中共享了一个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
答案 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")