Versuch, die Applescript-Variable im Befehl curl innerhalb des Shell-Skripts zu verwenden

634
mr.admin

Dies ist mein erster Beitrag, also hoffe ich, dass jemand, der viel klüger ist als ich, mir helfen kann.

Der Versuch, eine applescript-Variable im curl-Befehl zu verwenden, der sich im do-Shell-Skript befindet. Wenn ich "123456" in den Befehl stelle, funktioniert das problemlos, aber bei Verwendung einer Applescript-Variablen bricht der Befehl ab, wenn er die Pipe erreicht.

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

Ich vermute, es handelt sich um ein Formatierungs- oder Syntaxproblem, aber vielleicht gehe ich falsch vor.

Vielen Dank.

1
Habe das gemacht und die gleiche Antwort erhalten. Danke für die Empfehlung. mr.admin vor 6 Jahren 0
Versuchen Sie, die Anführungszeichen aus der Variablen theUDID zu entfernen. Fügen Sie dann die .. Zitierte Form von hinzu wch1zpink vor 6 Jahren 0
Versuchte das und bekam "Kann nicht zitierte Form von 123456 in Typ Unicode-Text machen." Danke für den Gedanken. mr.admin vor 6 Jahren 0
Entschuldigung, in den Richtlinien heißt es, nicht zu antworten und danke zu sagen, was ich getan habe. Dies löst das Problem und Sie verdienen die Anerkennung. Übrigens, vielen Dank! mr.admin vor 6 Jahren 0

1 Antwort auf die Frage

1
user3439894

Legen Sie auch die theUDID AppleScript- Variable als shell Variable fest .

  1. Lass set theUDID to "123456"wie es ist.
  2. Verwenden Sie diesen neuen do shell script Befehl :

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

Dadurch wird die AppleScript- Variable ebenfalls theUDID als shell Variable festgelegt und ab shelldem Ende der URL als abgerufen$theUDID .

Diese Antwort ist ein hervorragender Fund. Vielen Dank. Jamie Garroch vor 5 Jahren 0