AppleScript / Shell Script per leggere i dati "arricciare -L"

0

Ho un file Dropbox con due righe di dati che vorrei analizzare in due variabili. La seguente funzione dovrebbe avere la logica giusta ma non sembra funzionare:

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

Errore:
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

Qualsiasi aiuto è molto apprezzato. Cin cin.

    
posta ProGrammer 16.12.2016 - 05:46
fonte

1 risposta

1

Come codificato, versionFile è una variabile che contiene il contenuto del file non il file stesso e stai usando il read comando impropriamente, poiché legge i dati da un file , non una variabile .

Modifica:

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

Risultati:

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

Poiché la variabile versionFile contiene il contenuto testo del file , allora in questo caso per lavorare con esso, usa < em> elementi di oggetti di testo , uno dei quali è paragraph e nel contesto definito come:

A series of characters beginning immediately after either the first character after the end of the preceding paragraph or the beginning of the text and ending with either a carriage return character (\r), a linefeed character (\n), a return/linefeed pair (\r\n), or the end of the text. The Unicode "paragraph separator" character (U+2029) is not supported.

    
risposta data 17.12.2016 - 09:26
fonte

Leggi altre domande sui tag