4

Я делаю яблочный скрипт, который должен установить команду с кавычками переменной. Это код до сих пор:

set myString to "This is a "quoted" text."

Но возникает ошибка, потому что яблочный скрипт не допускает кавычки внутри кавычек. Я пытался взять обратную косую черту перед каждой кавычки, но затем вывод:

"This is a \"quoted\" text."

4 ответа4

3

Прямо из Apple, он говорит, что вы можете использовать escape:

Опция 1:

Специальные строковые символы

The backslash (\) and double-quote (") characters have special meaning
in text. AppleScript encloses text in double-quote characters and uses
the backslash character to represent return (\r), tab (\t), and
linefeed (\n) characters (described below). So if you want to include
an actual backslash or double-quote character in a text object, you
must use the equivalent two-character sequence. As a convenience,
AppleScript also provides the text constant quote, which has the value
\".

Table 6-1  Special characters in text Character To insert in text
Backslash character (\) \\ Double quote (") \" quote (text constant)

Вариант 2

На этой же странице Apple говорит, что вы можете использовать quote чтобы вставить \" вместо этого:

set myString to "this is a " & quote & "quoted" & quote & " text."

Вариант 3

Другой найденный вариант:

set inString to "quoted"
set myString to "this is a " & quoted form of inString & " text."

Редактировать: Хотя вы сказали, что последний выводит this is 'quoted' text .

2

\"мой цитируемый текст \" - это правильный способ заключить текст в двойные кавычки. Запустите скрипт ниже и откройте example.txt, чтобы увидеть результат.

set xxx to "This is a \"quoted\" text."
do shell script "echo " & quoted form of xxx & " > ~/Desktop/example.txt"
0

Другой способ для цитируемого текста в AppleScript:

установить вход "с цитатой"

установить ввод для выполнения сценария оболочки "echo" и формы в кавычках (quote & input & quote)

эхо '\"с цитатой \"'

или более длинный

установить ввод для выполнения сценария оболочки "echo" & input & "| sed 's #" & input & "#" & "\" "& input &"\"" & "#'"

-1

В яблочном скрипте есть ошибка, если вы запустите команду return TestVarible то результат будет с обратной косой чертой. Но последняя команда верна:

display dialog TestVariable Выходные данные "This is a "quoted" text."

Спасибо за все ответы!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .