当前位置: 首页 > 知识库问答 >
问题:

Applescript Bash:脚本在Applescript编辑器中工作,但不使用osascript

邵兴庆
2023-03-14

我有运行一些Applescript的bash函数。如果我在Applescript编辑器或Textate中运行Applescript部分,它可以正常工作,但是在命令行上,函数失败了...

wtf() {
  osascript - <<EOF
  tell application "iTerm"
      tell current terminal
          launch session "Railscasts"
          tell the last session
              write text 'echo -ne "\\e]1;$account\\a"'
          end tell
      end tell
  end tell
EOF
}

错误是:

190:191: syntax error: Expected expression but found unknown token. (-2741)

我知道(认为)问题在于这一行的第一个bash转义序列:

write text 'echo -ne "\\e]1;$account\\a"'
                      ^

但我不知道为什么失败了。。。你知道为什么这行不通吗?

编辑1:我也尝试过这个,但失败了:

wtf() {
  osascript - <<EOF
  tell application "iTerm"
      tell current terminal
          launch session "Railscasts"
          tell the last session
              write text "echo -ne \\\"\\e]1;$account\\a\\\""
          end tell
      end tell
  end tell
EOF
}

错误消息:

163:164: syntax error: Expected end of line but found unknown token. (-2741)

共有2个答案

越健
2023-03-14

您还可以替换

<<'END'
\$` are not interpreted
END

<<END
\$` are interpreted
END

或者只用单引号:

osascript -e 'tell application "iTerm"
    --
end tell'

X=999 osascript -e 'on run argv
    item 1 of argv + system attribute "X"
end run' 888

柯昱
2023-03-14

AppleScript不支持字符串文本的'...'。您必须使用"...",并用\转义"..."的内部对。

此外,外壳似乎减少了遗传算法中的反斜杠序列(!!!),因此,需要在现有反斜杠上添加更多反斜杠:

"echo -ne \"\\\\e]1;$account\\\\a\""
 类似资料:
  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 我正在使用Amazon Linux AMI在EC2 AWS上运行以下脚本 从今天起,由于EC2上没有任何更改或新安装,脚本在昨天之前一直工作时停止工作。 本地计算机上的相同脚本仍然有效。 相反,在EC2上会出现以下错误: (节点:12636)UnhandledPromiseRejectionWarning:错误:导航失败,因为浏览器已断开连接!在cdpsession.lifecyclewatche

  • 我正在经历一个问题。 XML编码 Java编码 我希望当我单击editText时,当前文本必须是dissapperar。但是当我单击 单击事件工作正常,但光标不再位于编辑文本处。这意味着如果要输入一些新文本,那么即使光标不在编辑文本,如何输入新文本,如果我使用 然后单击事件不起作用。但可用于任何新编辑。问题是什么?我知道这是个愚蠢的错误,但我不知道在哪里。提前感谢大家。

  • 是否可以使可单击但不可编辑。 我不希望它是可编辑的(键盘也不应该出现,我们也不应该改变提示) 实际上,我只想使用编辑文本作为带有提示的图像(不能更改)。我知道实际的方法是使用一个和一个,但我希望它尝试使用,因为这样我将只使用一个视图,而不是2个。而且每件事都是动态的,所以没有XML。 对于上述需求,XML中的解决方案是android:editable=“false”,但我想在Java中使用它。 但