0 votos

AppleScript / Shell Script para leer 'curl -L' datos

Tengo Dropbox archivo con dos líneas de datos que me gustaría analizar en las dos variables. La siguiente función debe tener el derecho de lógica, pero parece que no funciona:

set versionFile to do shell script ("curl -L 'https://www.dropbox.com/s/5eugzgr1alfgsp9/version.txt?dl=1'")
set lineDelimiter to read versionFile using delimiter return
repeat with oneLine in lineDelimiter
    if length of oneLine is greater than 0 then
        set variable to oneLine
        log "variable: " & variable
    end if
end repeat

Error:
error "Can't make \"1.0.0.2 www.example.com/download-link-here\" into type file." number -1700 from "1.0.0.2 www.example.com/download-link-here" to file

Cualquier ayuda es muy apreciada. Saludos.

1voto

user3439894 Puntos 5883

Como codificado, versionFile es una variable que contiene el contenido del archivo no el archivo en sí, y está usando el read comando de forma inadecuada, como se lee datos de un archivo, no una variable.

Cambio:

set lineDelimiter to read versionFile using delimiter return

A:

set lineDelimiter to paragraphs of versionFile

set versionFile to do shell script ("curl -L 'https://www.dropbox.com/s/5eugzgr1alfgsp9/version.txt?dl=1'")
set lineDelimiter to paragraphs of versionFile
repeat with oneLine in lineDelimiter
    if length of oneLine is greater than 0 then
        set variable to oneLine
        log "variable: " & variable
    end if
end repeat

Resultados:

tell current application
    do shell script "curl -L 'https://www.dropbox.com/s/5eugzgr1alfgsp9/version.txt?dl=1'"
        --> "1.0.0.2
www.example.com/download-link-here"
    (*variable: 1.0.0.2*)
    (*variable: www.example.com/download-link-here*)
end tell

Desde la versionFile variable contiene el texto del contenido del archivo, a continuación, en este caso para trabajar con ella, el uso de los elementos de los objetos de texto, uno de los cuales es paragraph y en el contexto se define como:

Una serie de caracteres que comienza inmediatamente después de que el primer carácter después de la final del párrafo anterior o al principio del texto y que termina con un carácter de retorno de carro (\r), un carácter de avance de línea (\n), un retorno de carro par (\r\n), o al final del texto. El Unicode "párrafo separador de carácter" (U+2029) no es compatible.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X