如何在mac上按顺序(一个接一个)运行多个脚本文件?

时间:2012-07-14 00:27:21

标签: macos batch-file applescript

我有10个脚本文件,每个文件最多包含100个命令(每个命令需要1分钟)。目前它节省了我的时间,我只点击一个文件来执行100个命令,但我想要的是另一个脚本文件,它按顺序执行10个脚本文件,而不是等待每个文件完成,然后通过单击执行第二个脚本文件。

2 个答案:

答案 0 :(得分:5)

您只需像以前一样调用每个脚本,但请用分号 ;

分隔它们

每个脚本完成执行后,bash将开始执行下一个脚本。

在终端:

./scriptsrc/script_1; ./scriptsrc/script_2; ./scriptsrc/script_n;

如果您需要更多指导check this question out,则其非常相似。

修改 如果你想从另一个脚本运行多个脚本,这可以通过添加shebang行来告诉内核文件是可执行的,然后只列出你想要的脚本来实现:

#!/bin/bash

./scriptsrc/script_1 
./scriptsrc/script_2
./scriptsrc/script_n

echo "script execution complete"

答案 1 :(得分:0)

@Scripts.Render("~/Scripts/index")
@Scripts.Render("~/Scripts/jquery.dropotron.min")
@Scripts.Render("~/Scripts/jquery.min")
@Scripts.Render("~/Scripts/jquery.scrollex.min")
@Scripts.Render("~/Scripts/jquery.scrolly.min")
@Scripts.Render("~/Scripts/main")
@Scripts.Render("~/Scripts/moment")
@Scripts.Render("~/Scripts/npm")
@Scripts.Render("~/Scripts/skel")
@Scripts.Render("~/Scripts/util")
@Scripts.Render("~/Scripts/gcal")
@Scripts.Render("~/Scripts/fullcalendar")
@RenderSection("scripts", required: false)

当我测试一个未知原因时,列表中的最后一个脚本没有运行前几次,但在我运行之后

set a to alias POSIX file "/Users/Firebird/Documents/script1.scpt"
set b to alias POSIX file "/Users/Firebird/Documents/script2.scpt"
set c to alias POSIX file "/Users/Firebird/Documents/script3.scpt"

set theScriptFiles to {a, b, c}
repeat with scriptFile in theScriptFiles
    run script scriptFile
end repeat

有效!

为了确保所有脚本都运行,我告诉Texteditor为每个相应的脚本打开一个文件:

set myList to {"Hello", "Goodbye", "I must be going"}
repeat with theItem in myList
    say theItem
end repeat

这个帖子在MacScripter http://macscripter.net/viewtopic.php?id=44260

中也非常好