applescript / shell中的单引号转义

Ke.*_*Ke. 5 shell applescript escaping character

我正在尝试用applescript处理此shell脚本,但是由于文件夹名称中的单引号,它一直在说错误EOF。

do shell script "cp -R " & a & " " & "'" & d & "/My 'Folder/java/" & "'"
Run Code Online (Sandbox Code Playgroud)

文件夹/ My'Folder /是合法目录。

变量a ='/ Applications / MyProgram /'(包括单引号)

变量d = /文件夹(无单引号)

但是,由于文件夹被用引号引起来,所以外壳程序在处理它时陷入了困境。

有什么办法可以避免使用单引号,所以它可以在使用shell的applescript中使用?香港专业教育学院尝试了多个反斜杠,但不起作用。

干杯

ñ

dj *_*zie 6

quoted form of在将任意数据用作命令的参数时,请始终使用。即使不需要引用该值,它也始终会引用该值,但比后悔更安全。用单引号引起来的字符串时,只能用另一个引号取消引号(重新启用替换模式)。与AppleScript字符串不同,您不能在单引号字符串内转义字符。因此,您需要打开替换模式,对引号进行转义,然后再将替换模式重新设置为一个。例如,“乔的汽车”应引用为“'乔的汽车'”。它是带引号的字符串“ Joe” +转义的引号字符+引号的字符串“ s car”。但是,就像我开始时一样,您应该使用quoted form ofquoted form of "Joe's car"将返回"'Joe'\\''s car'"

您使用带引号的形式的命令将如下所示:

do shell script "cp -R " & quoted form of a & space & quoted form of (d & "/My 'Folder/java/")
Run Code Online (Sandbox Code Playgroud)

  • (尽管出于用户的辩护,他们不知道使用“ <字符串>”的引号形式是标准添加的深渊词典的错。这种重要信息应作为“ do shell脚本”的一部分显示。命令的文档,因此不会错过。请随时提交雷达票。) (3认同)