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

0

Tengo un archivo de Dropbox con dos líneas de datos que me gustaría analizar en dos variables. La siguiente función debería tener la lógica correcta pero no parece funcionar:

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.

    
pregunta ProGrammer 16.12.2016 - 05:46

1 respuesta

1

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

Cambiar:

set lineDelimiter to read versionFile using delimiter return

Para:

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

Dado que la variable versionFile contiene el contenido del texto del archivo , en este caso para trabajar con él, use < em> elementos de objetos de texto , uno de los cuales es paragraph y en el contexto definido como:

  

Una serie de caracteres que comienzan inmediatamente después del primer carácter después del final del párrafo anterior o el comienzo del texto y terminan con un carácter de retorno de carro (\ r), un carácter de avance de línea (\ n), un retorno / linefeed pair (\ r \ n), o el final del texto. El carácter "separador de párrafos" de Unicode (U + 2029) no es compatible.

    
respondido por el user3439894 17.12.2016 - 09:26

Lea otras preguntas en las etiquetas