如何为不同的值运行终端命令


0

如何标记i,以便对i的所有值重复执行do命令。

例如

if i =2:
cd /Users/xxx/zTree; wine explorer /desktop=1,640x480 zleaf.exe /language english /name lab1
cd /Users/xxx/zTree; wine explorer /desktop=2,640x480 zleaf.exe /language english /name lab2

但不知怎的,这不起作用,我的错误在哪里?

display dialog "how many leafs?" default answer ""

set i to the text returned of result as integer
repeat while i > 0
  tell application "Terminal"
    do script "cd /Users/xxx/zTree; wine explorer /desktop=$i,640x480 zleaf.exe /language english /name lab$i"
    set i to i - 1
    activate
  end tell
end repeat

Irah你遇到的问题是尝试将bash变量替换与Applescript混合使用。我找不到使用Applescript的替换方法所以我使用了一个串联方法,它结合了部分字符串使用&
Todd Dabney

Answers:


1

medbot是正确的,你应该真的这样做作为一个shell脚本,但由于很难做像Applescript中的对话框这里是答案:

display dialog "how many leafs?" default answer ""

set i to the text returned of result as integer
repeat while i > 0
    tell application "Terminal"
        do script "cd /Users/xxx/zTree; wine explorer /desktop=" & i & ",640x480 zleaf.exe /language english /name lab" & i
    end tell
set i to i - 1
end repeat

-1

如果您打算自动执行终端命令,可以通过编写一个名为shell脚本的纯文本文件来实现shell脚本文件将包含您希望执行的命令,每个命令由一行分隔。shell脚本文件还可以包含带变量和运算符的编程语句。当您希望执行shell脚本时,您只需在命令提示符处发出shell脚本的文件名,就像内置命令一样。

在您的问题中不完全清楚的是,您希望变量'i'在哪里获得其起始值,以及每次'i'递增和评估时应该做些什么?

另外,'cd'不是脚本,而是命令。


变量'i'以这种方式生成:显示对话框“有多少叶子?” 默认回答“”我设置为文本返回结果的
Irah

好的,什么是叶子?仍然不清楚你想要完成什么。有人编辑了你的问题,现在它还不太清楚。以下是您需要做的事情:忘掉“我”并编辑您的问题,以描述您要详细解决的问题。
medbot 2016年

leafs是我想要打开的应用程序,但我想打开它的几个实例。它是一个在社会科学中进行实验的程序......
Irah

@medbot你的答案是正确的,shell脚本是正确的方法,除了它忽略了Applescript开始的漂亮的对话框提示,这有点难以通过命令行重现。关于脚本的问题应该注明原始帖子的评论,而不是你的答案的一部分。
托德达布尼

如果你确实想在shell脚本中使用一个对话框,它实际上并不像我想象的那么难:stackoverflow.com/questions/9180476 / ...
Todd Dabney
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.