Establecer una variable para el resultado de un comando de terminal dentro de un applecript

1

Estoy tratando de hacer una secuencia de comandos que expulsa todas las unidades externas conectadas y no se mueve hasta que se desconectan todas.

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

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

Tampoco he probado esa secuencia de comandos, pero supongo que así es como ejecutas un comando de terminal desde dentro de un script de manzana.

Pregunta de seguimiento:

¿Cómo podría entonces expulsar 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
    
pregunta JShoe 10.01.2013 - 17:17

3 respuestas

3

prueba:

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
    
respondido por el adayzdone 10.01.2013 - 19:09
2

Puedes hacer algo como esto:

set vol_count to do shell script "cd /Volumes; ls | wc -l"
    
respondido por el Riccardo Marotti 10.01.2013 - 17:51
2

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

set myvar to do shell script "ls ~"
    
respondido por el Avinash Vakil 10.01.2013 - 17:49

Lea otras preguntas en las etiquetas