Попытка использовать переменную Applescript в команде curl внутри скрипта do shell

550
mr.admin

Это мой первый пост, поэтому я надеюсь, что кто-то намного умнее меня сможет помочь мне.

Попытка использовать переменную applecript в команде curl, которая находится внутри сценария do shell. Если я добавлю «123456» в команду, она будет работать нормально, но использование переменной applecript приводит к сбою команды при достижении канала.

set theUDID to "123456"  set theSerial to do shell script "curl -sk https://something/api/udid/" & theUDID | xmllint --format - | awk -F'>|<' '/<serial_number>/'" 

Я предполагаю, что это проблема форматирования или синтаксиса, но, возможно, я все об этом ошибаюсь.

Спасибо.

1
Дал, что пойти и получил тот же ответ. Спасибо за рекомендацию. mr.admin 6 лет назад 0
Попробуйте удалить кавычки из переменной theUDID. Затем добавьте. Цитируемая форма wch1zpink 6 лет назад 0
Попробовал это и получил «Не могу превратить кавычки 123456 в текст типа Unicode». Спасибо за мысль. mr.admin 6 лет назад 0
Извините, в руководстве написано, что я не отвечаю, чтобы сказать спасибо, что я и делал. Это решает проблему, и вы заслуживаете кредит. Кстати, большое спасибо! mr.admin 6 лет назад 0

1 ответ на вопрос

1
user3439894

Установите переменную theUDID AppleScript как переменную тоже.shell

  1. Оставь set theUDID to "123456"как есть.
  2. Используйте эту новую do shell script команду :

    set theSerial to do shell script "theUDID=" & quoted form of theUDID & "; curl -sk https://something/api/udid/$theUDID | xmllint --format - | awk -F'>|<' '/<serial_number>/'" 

Это также устанавливает переменную AppleScript как переменную, а затем возвращает ее в конце URL как . theUDIDshell shell$theUDID

Этот ответ - отличная находка. Спасибо. Jamie Garroch 5 лет назад 0