Это просто сводит меня с ума. Я пытаюсь прочитать файл в bash, удалить дубликаты, отсортировать, а затем отобразить окно «Список выбора» с помощью appleScript.
Мой файл $ DATALOG отформатирован так:
поле1 поле2
поле1 поле3
поле1 поле4
и т.д ...
Applescript = awk '{print $2}' $DATALOG | awk ' !x[$0]++' | sort -u | tr "_" " "| sed 's/^/\"/' | sed 's/$/\"/' | tr "\n" "," | sed 's/.$//'
Теперь эта строка работает БОЛЬШОЙ. в $ Applescript я получаю вывод, подобный этому:
«поле 2», «поле 3», «поле 4»
Что именно я хочу.
Теперь я беру этот вывод и добавляю обратную косую черту перед кавычками, и части appleScript.
Applescript=`echo "tell application \"System Events\" to return (choose from list {$Applescript})"| sed 's/\"/\\\"/g'`
И это дает мне именно то, что я хочу:
сообщить приложению \ "Системные события \" о возврате (выберите из списка {\ "поле 2 \", \ "поле 3 \", \ "поле 4 \"})
Теперь я пытаюсь выполнить команду osascript:
osascript -e $ Applescript
И я получаю ошибку:
4: 4: синтаксическая ошибка: ожидаемое выражение, но найден конец сценария. (-2741)
Итак, я добавляю цитаты:
osascript -e "$ Applescript"
И я получаю ошибку:
17: 18: синтаксическая ошибка: ожидаемое выражение, форма свойства или ключа и т. Д., Но найден неизвестный токен. (-2741)
Я не могу сказать, что, черт возьми, здесь происходит, поэтому я решил скопировать эхо $ Airport и попробовать это как переменную.
Аэропорт = tell application \"System Events\" to return (choose from list {\"field 2\",\"field 3\",\"field 4\"})
И ЭТО РАБОТАЕТ БЕЗ ЛЮБОЙ МОДИФИКАЦИИ.
Так ....
Мне нужно выяснить, как это сделать, не устанавливая мои переменные постоянно.