Нежелательные цитаты в тексте диалогового окна, вызываемого osascript - PullRequest
0 голосов
/ 24 апреля 2020

Я управляю компьютерами Mac на работе и создаю инструмент для запуска диагностики c и отображаю результаты сбоев в диалоговом окне вместе с предложением «сохранить» .txt-файл, продолжая более подробный подробный отчет. Лучший способ найти диалоговое окно - использовать osascript, и он у меня работает хорошо, однако вокруг отображаемого текста есть кавычки. Я думаю, что это связано с тем, что я вызываю переменную для текста, который установлен ранее в сценарии bash, в зависимости от того, сколько ошибок я добавил в определенный массив. В случае если этот массив НЕ пуст, этот текст также вызывает ДРУГУЮ переменную, чтобы получить более эстетически привлекательную версию элементов массива. Я не могу реально изменить то, что содержит текст и как он отображается, и везде, где я пытаюсь удалить кавычки, кажется, просто ломается все.

Вот код

## Dialog Box

# let's get the array to only list one item per line
niceList=$(printf '%s\n' "${failArray[@]}")

if [ ${#failArray[@]} -eq 0 ] ; then
    dialogText="All checks passed.  

You may close this window or save the full report."
else
    dialogText="The following items have failed:   

$niceList

You may close this window or save the full report."

fi

osascript << EOF

set report to POSIX file "/Users/Shared/Mac Health Check.txt"

display dialog "\$dialogText\"" with title "Mac Health Check" buttons {"Close", "Save Report"} default button "Close"

if result = {button returned:"Save Report"} then
    set savePath to choose folder
    tell application "Finder"
        move file report to folder savePath
    end tell
else if result = {returned:"Close"} then
    tell application "Finder"
        delete file report
    end tell
end if
EOF

Опять же, это В настоящее время работает так, как задумано, за исключением всего текста в цитируемом диалоговом окне. Мне сказали убрать эти цитаты того, кому нет дела до моих страданий. Есть предложения?

1 Ответ

1 голос
/ 24 апреля 2020

Вы не расширяете переменную $dialogText, потому что вы избежали $. И вы добавляете дополнительную цитату с \". Измените эту строку на:

display dialog "$dialogText" with title "Mac Health Check" buttons {"Close", "Save Report"} default button "Close"

Обратите внимание, что вам нужно убедиться, что вы не ставите никаких двойных кавычек в dialogText, так как они будут соответствовать двойным кавычкам, используемым для разделения строки в display dialog команда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...