Establecer una variable en el resultado de un comando de terminal dentro de un applescript

Estoy tratando de hacer un script que expulse todas las unidades externas conectadas y no avance hasta que estén todas desconectadas.

El principal problema que tengo es poder establecer la variable vol_counten el resultado del siguiente script:

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

Tampoco he probado ese script, pero supongo que así es como ejecutas un comando de terminal desde un applescript.

Siguiente pregunta:

Entonces, ¿cómo haría que expulsara todos los discos excepto dos (mi disco duro está dividido en dos discos)?

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

Respuestas (3)

intentar:

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

Puedes hacer algo como esto:

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

No es así como ejecuta un comando de terminal en AppleScript. Prueba algo como

set myvar to do shell script "ls ~"