1 votos

Establecer una variable al resultado de un comando de terminal dentro de un applescript

Estoy intentando hacer un script que expulse todas las unidades externas conectadas y no siga adelante hasta que estén todas desconectadas.

El principal problema que estoy teniendo es poder establecer la variable vol_count al resultado del siguiente script:

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

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

Pregunta de seguimiento:

¿Cómo puedo hacer que expulse todos los discos menos dos (mi disco duro está particionado 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

3voto

adayzdone Puntos 1258

Inténtalo:

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

2voto

Así no se ejecuta un comando de terminal en AppleScript. Intenta algo como

set myvar to do shell script "ls ~"

2voto

Derek Morrison Puntos 2359

Puedes hacer algo así:

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X