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