【问题标题】:error "sh: : command not found sh: : command not found" number 127错误“sh: : command not found sh: : command not found”编号 127
【发布时间】:2020-09-26 17:42:27
【问题描述】:

我正在尝试使用以下命令制作 AppleScript,但当我运行它时,do shell script 命令出错。我尝试在终端中运行它,它工作得非常好,所以我认为 AppleScript 告诉 shell 脚本执行存在问题。有人有解决方案吗?还有必要在我的脚本末尾加上end run 吗?

do shell script "screencapture -R123,456,1,1 -t bmp $TMPDIR/test.bmp && 
                 xxd -p -l 3 -s 54 $TMPDIR/test.bmp | 
                 sed 's/\\(..\\)\\(..\\)\\(..\\)/\\3\\2\\1/'"

编辑:另外,您如何将 shell 脚本的输出设为 var?

编辑 2:运行 do shell script "screencapture -R123,456,1,1 -t bmp $TMPDIR/test.bmp" 工作得很好,所以我认为它可能与 tmpdir 有关

编辑 3:我再次运行它,它以某种方式工作得很好,所以如果有人知道如何使输出成为一个 var,那将非常感谢!

【问题讨论】:

  • $TMPDIR 没有定义,所以它可能在抱怨。 do shell script 命令不需要end run
  • CrazeDave,在我的系统上运行良好。
  • @red_menace, TMPDIR 已定义,只需运行 do shell script "echo $TMPDIR" 并在我的系统上返回例​​如/var/folders/71/rhgmzdz532d6tqqfx372xdk00000gn/T/
  • 顺便说一句,这是一种在给定坐标处获取单个像素的十六进制颜色表示法的有趣方法。
  • @user3439894 拿到 /var/folders/71/rhgmzdz532d6tqqfx372xdk00000gn/T/ 后该怎么办?

标签: macos shell applescript


【解决方案1】:

我复制并粘贴了您的 AppleScript 代码 并在 Script Editor 中运行它。它运行没有错误,我发现 代码 没有任何问题。

要将do shell script command 返回的内容转换为变量 使用,例如:

set hexColor to do shell script "screencapture -R123,456,1,1 -t bmp $TMPDIR/test.bmp && 
    xxd -p -l 3 -s 54 $TMPDIR/test.bmp | 
    sed 's/\\(..\\)\\(..\\)\\(..\\)/\\3\\2\\1/'"

您不需要end run,除非您有on run

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-24
    • 2020-01-28
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2014-08-10
    • 1970-01-01
    相关资源
    最近更新 更多