Impostazione di una variabile sul risultato di un comando di terminale all'interno di un applescript

1

Sto provando a creare uno script che espelle tutte le unità esterne connesse e non si sposta fino a quando non sono tutte disconnesse.

Il problema principale che sto avendo è la possibilità di impostare la variabile vol_count sul risultato del seguente script:

tell application "Terminal"
    cd /Volumes
    ls | wc -l
end tell

Inoltre non ho testato quello script, ma presumo che sia come si esegue un comando da terminale all'interno di un applescript.

Domanda successiva:

Come avrei dovuto espellere tutti tranne due dischi (il mio disco rigido è diviso in due dischi)?

on run {}

    tell application "Finder"
        set vol_count to do shell script "cd /Volumes; ls | wc -l"

        eject the disks

        repeat until vol_count is equal to 2
            set vol_count to do shell script "cd /Volumes; ls | wc -l"
        end repeat
    end tell
end run
    
posta JShoe 10.01.2013 - 17:17
fonte

3 risposte

3

Prova:

set dontEject to {"Mac OS X", "Time Machine", "Media", "home", "net"}
set myDisks to list disks

repeat with aDisk in myDisks
    if aDisk is not in dontEject then tell application "Finder" to eject aDisk
end repeat
    
risposta data 10.01.2013 - 19:09
fonte
2

Puoi fare qualcosa di simile a questo:

set vol_count to do shell script "cd /Volumes; ls | wc -l"
    
risposta data 10.01.2013 - 17:51
fonte
2

Non è così che si esegue un comando terminale in AppleScript. Prova qualcosa come

set myvar to do shell script "ls ~"
    
risposta data 10.01.2013 - 17:49
fonte

Leggi altre domande sui tag