【问题标题】:How to run multiple script files in a sequence on OS X?如何在 OS X 上按顺序运行多个脚本文件?
【发布时间】:2012-07-14 00:27:20
【问题描述】:

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

【问题讨论】:

  • 在 bash 中?我认为您可以这样做:script0; script1; script2

标签: macos batch-file applescript


【解决方案1】:

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

每个脚本执行完毕后,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"

【讨论】:

  • 谢谢,它成功了,我可以通过在命令提示符(终端)一个接一个地输入其名称来运行多个脚本,但这是否意味着我们不能从脚本文件运行脚本文件?
  • @Asbat 您确实可以从脚本文件运行它们,您只需要添加 shebang 行(#!/bin/bash),然后在没有; 的情况下在单独的行上调用每个脚本请看编辑。
  • 我在终端中运行脚本没有问题,但是一旦我尝试在单独的脚本中运行它们,我得到一个“权限被拒绝问题”任何原因?我之前在脚本上没有 sudo 设置。
【解决方案2】:
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

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

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

成功了!

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

tell application "Finder" to open "Macintosh:Users:Firebird:Documents:ranscript1.rtf"

MacScripter http://macscripter.net/viewtopic.php?id=44260的这个帖子也很好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2011-02-07
    • 2021-11-28
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多