Нет, в 'funky-!@#'\''#"chars'
не добавляется '
.
Как уже указано 17510427541297
, идиома AppleScript quoted form of
предназначена для использования в оболочках Unix, а строки в оболочках Unix объединяются, если они расположены непосредственно рядом друг с другом.
AppleScript quoted form of abc
просто делает это: он создает строку, заключенную в одинарные кавычки, но заменяет каждую одиночную кавычку '
вместе с этой строкой на '\''
.
Фактически это создает три отдельные строки, но эти три отдельные строки подчиняются следующему механизму создания строк в (большинстве) оболочек Unix:
"funky-!@#'#\"chars"
становится 'funky-!@#'
+\'
+ '#"chars'
Результирующая строка подходит для интерпретации оболочками Unix как одна литеральная строка (без проблем с расширением параметров и т.п.).
# in Terminal.app
# note the escaping in: osascript -e '...'\''...'
quotedsrt="$(osascript -e '
set abc to "funky-!@#'\''#\"chars"
return quoted form of abc
')"
echo "$quotedsrt" # 'funky-!@#'\''#"chars'
eval echo "$quotedsrt" # funky-!@#'#"chars
echo echo "$quotedsrt" | sh
# escaping mechanism for Bash shell
set +H
esc="'\''"
str="funky-!@#'#\"chars"
str="'${str//\'/${esc}}'"
set -H
echo "$str" # 'funky-!@#'\''#"chars'
eval echo "$str" # funky-!@#'#"chars
echo echo "$str" | sh