у вас была ошибка цитаты.Просто, чтобы заменить двойные кавычки на одинарные, этого достаточно
set list_string to "This program said: \"Hello World!\""
set new_string to do shell script "/bin/echo -n " & quoted form of list_string & " | sed -e 's/\"/'\\''/g'"
Объяснение 's / \ "/' \ '' / g '
\\ and \" необходимо вЯблочный скрипт и будет в оболочке просто \ и ". Итак, что входит в оболочку это 's /" /' \ '' / g '.Тогда что со всеми цитатами?Очень распространенная ошибка - думать, что цитаты в командной строке работают так же, как в программировании.Одиночная кавычка включает или выключает замену.Таким образом, первая одинарная кавычка отключает подстановку, что означает, что следующие символы будут интерпретироваться как текст и не имеют специального значения (включая escape-символ).Таким образом, чтобы избежать одиночной кавычки, нам нужно включить подстановку, тогда мы можем избежать одиночной кавычки и снова отключить подстановку.