【问题标题】:How to use Variables in Automator如何在 Automator 中使用变量
【发布时间】:2018-08-10 04:36:59
【问题描述】:

请多多包涵,我用 Automator 不久。

我有很好的 PHP 经验(完全不同)和一些小的脚本知识(苹果脚本、shell 等)。

我尝试用 Automator 复制这个逻辑工作流:

  1. 要求用户插入值(设置 $variable_a)
  2. 要求用户再插入一个值(设置 $variable_b)
  3. 提交
  4. 这会触发一个使用上面提交的两个值的脚本。一个虚拟的例子:

    回显 $variable_a 回显变量_b

看起来很简单,使用 Automator 设置此逻辑的速度令人惊叹。

问题是,在上面的第 2 阶段,我的 $variable_a 突然变成了 $variable_a$variable_b 的混合值。

为什么会这样?

它们似乎不像我理解“变量”在任何语言或编程步骤中的一般用法那样行事。 在其他系统中,通常,变量将它们定义的值保留为值(除非变量变量或您在代码中有意识地修改它们)

我附上了一个Automator "WorkFlow" File,它完全复制了上述工作流逻辑。 这是一个 ZIP 文件,解压缩并在 Automator 中打开进行测试。

您将看到(在最后一步的结果部分)这些值如何变为(恕我直言)假。

有人提示吗?

【问题讨论】:

    标签: variables workflow automator


    【解决方案1】:

    发生这种情况的原因是工作流中一个操作的输出被作为输入输入到工作流的下一个操作。由于输入是由操作接收的,因此它们在某些情况下也可以聚合,例如在设置和获取变量时。

    这样做的原因是您可以将多个变量直接发送到,例如,Run Shell Script 操作,并使用$1$2 等引用它们。如果 Automator 只接受最近的输入,如果不先手动将它们组合成一个列表,您将永远无法将多个变量输入到 shell 脚本中。

    解决方案很简单。每个操作都有一个您可以按下的选项按钮,然后会显示一个名为忽略此操作的输入的复选框。对于您希望独立于先前结果进行操作的那些操作,需要对此进行检查。

    这是您的工作流程的屏幕截图,其中对应的复选框勾选了需要它的操作:

    【讨论】:

    • 首先我想,这永远不会奏效......仔细观察,这是有道理的 试过了,似乎是正确的解决方案 两个变量现在都有正确的,以前设置的值顺便说一句; “运行 Shell 脚本操作,并使用 $1、$2 等来引用它们”,这正是我想要的,但是,通过我的设置,在 shell $@ 中你会一团糟。我现在将检查您的方法在 $@ 和 $f 中产生了什么非常感谢,接受的答案,因为它解决了报告的问题。
    • @smileBeda 在Run Shell Script动作中实现变量引用的方法是在Get Value of Variable动作之前直接插入一系列动作它:即获取变量>获取变量>...>运行Shell脚本。您想将输入作为参数传递。那么,以前给您带来的不便现在是您的祝福,因为所有这些在 shell 脚本之前的变量操作都将聚合到一个列表中,该列表作为参数传递给 shell 脚本,可以引用 $1$2等,以及$@
    猜你喜欢
    • 2014-02-18
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    相关资源
    最近更新 更多