【问题标题】:Automator: "run shell script" action only receives 1st line of inputAutomator:“运行 shell 脚本”操作仅接收第一行输入
【发布时间】:2013-05-14 14:46:36
【问题描述】:

我有一个看起来很奇怪的问题(这里问过类似的问题,但我不想接受 Automator 只将 1 行输入到 shell 脚本操作中!:Mac Automator: shell script gets only one line

Automator-Workflow,键入“服务”,3 个块:

  1. 服务接收“文本”
  2. “运行shell脚本”,“bash”,通过“stdin”输入,shell脚本:“cat”
  3. 复制到剪贴板”

当我选择多行文本并运行此服务时,剪贴板中只有第一行结束。

我做了另外三个测试:

  1. 跳过 shell 脚本操作 - 直接将所选内容移动到剪贴板 >> 工作!
  2. shell 脚本操作不是从文本选择中获取输入,而是通过剪贴板中的“从剪贴板读取”操作获取输入 >> 失败(仅限第一行)
  3. 我选择了“perl”操作而不是“bash”操作 >> 失败(仅限第一行)

所以很明显,运行 shell 脚本操作包含问题。 但我之前已经多次使用 shell 脚本操作(带有网络内容),没有任何问题。

有什么想法吗? 可能是编码和/或行尾的问题?

【问题讨论】:

    标签: macos shell service automator


    【解决方案1】:

    至少在我的 Mac 上,当

    • 启动 Automator
    • 选择类型 -> 服务

    保存在某个名称(我的是 TestService),然后

    • 转到文本编辑
    • 输入一些文字
    • 选择

    • 从 TextEdit 的菜单:TextEdit -> Services -> TestService

    下一个进入剪贴板:

    2 ééééééééééé
    3 íííííííííí
    4 αβγδεζη
    5 ЧШЩЪЫЬЭ
    6 aaaaaaaaaa
    

    完全尝试上述方法... ;)

    【讨论】:

    • 谢谢你——你用截图记录你的步骤真是太好了! (我应该这样做 blush)...这正是我的设置(在德语 OSX 中)。但是我从您的建议中发现:当我在 Textedit 中键入 5 行时,所有工作都按预期工作,当我使用源中的文本时,将其粘贴到 Textedit 中,然后运行它失败的服务!所以也许有一些带有行尾或类似的东西(不可见)。通常我使用“xxd”作为 shell 命令,但在这种情况下,它并没有达到关键点。我让你更新....再次感谢!
    • 很奇怪。我玩过,做了更多的测试,现在它工作得非常正常。我改变的一件事是关闭我的一个工具(PopClip;下一个是 PasteMaster)——然后它就起作用了。我重新打开它,它仍然有效!?!?神秘!谢谢!!!
    • 太棒了!祝你好运;)(如果答案对您有用,请考虑点击接受)
    • 随着机器做它想做的事,我真的需要“运气”(也许不仅仅是知识);)
    • 所以,看起来,它与 BBedit 有关 - 并且自动机根据需要工作。 :) 我正在使用 MacVim - 所以不能告诉你任何关于 BBedit 的信息。
    【解决方案2】:

    我遇到了同样的问题。然后我没有使用“复制到剪贴板”命令,而是尝试执行另一个仅包含命令“pbcopy”的shell脚本(将其输入设置为“stdin”)。 之后换行符被正确保留。

    【讨论】:

      猜你喜欢
      • 2014-09-29
      • 2021-04-24
      • 2016-02-29
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2015-06-26
      • 2010-11-26
      相关资源
      最近更新 更多