IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Scripts shell et AppleScript


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2015
    Messages : 1
    Par défaut Scripts shell et AppleScript
    Bonjour,

    J'ai fait un script shell qui permet de modifier la partition de démarrage directement sur le bureau d'OS X en un double-clic pour éviter de soit passer par le Disque de démarrage soit par la GUI de Clover (hackintosh).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    echo motdepasse | sudo -S sudo diskutil mount /dev/disk1s1
     
    ligne=`head -33 /Volumes/EFI/config.plist | tail -1`
     
    if [[ "$ligne" =~ "Windows" ]]; then
    sed -i old -e '1s/Windows/Mac SSD/;t' -e '1,/Windows/s//Mac SSD/' /Volumes/EFI/config.plist
    rm /Volumes/EFI/config.plistold
    echo "Clover démarrera sur OS X"
    elif [[ "$ligne" =~ "Mac SSD" ]]; then
    sed -i old -e '1s/Mac SSD/Windows/;t' -e '1,/Mac SSD/s//Windows/' /Volumes/EFI/config.plist
    rm /Volumes/EFI/config.plistold
    echo "Clover démarrera sur Windows"
    else
    echo "Le fichier config.plist a été modifié"
    fi
     
    diskutil unmount /dev/disk1s1
    Le problème est que je ne peux passer que soit par le Terminal soit créer un exécutable qui n'affiche aucun message... Avec AppleScript j'ai vu qu'il était possible d'exécuter des commandes shell avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    do shell script "command1; command2"
    mais je bloque déjà avec mes conditions... et que même si c'est faisable, ça devient du gros bidouillage^^.

    Du coup est-il possible d'utiliser cette commande qui pointe vers le script shell et utiliser du code AppleScript seulement pour l'affichage des fenêtres (en fait jongler entre le script shell et AppleScript) ?
    Ou faut-il tout réécrire en AppleScript (je n'y arrive pas très bien...) ?
    Ou une autre solution ?

    Merci pour vos réponses.

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,

    Citation Envoyé par Bean-Flayers Voir le message
    modifier la partition de démarrage directement sur le bureau d'OS X en un double-clic
    Si je comprends bien tu souhaites basculer entre des volumes de démarrage via une application.
    Dans ce cas, voici un petit script qui utilise tout simplement la commande shell "bless" pour faire cette opération entre le volume 1 et 2.
    A toi de changer les noms avec ceux de ta partition, et , éventuellement de supprimer le dialog de confirmation ou encore l'instruction de reboot immédiat.

    Ce script te donne ainsi 2 exemples d'utilisation de "do shell script" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    set BootA to "Mon_Volume1"
    set BootB to "Mon_Volume2"
    
    -- determine le volume de boot actuel et sélectionne l'autre pour redémarrer
    if (boot volume of (system info)) = BootA then
        set Prochain_boot to "/volumes/" & BootB
    else
        set Prochain_boot to "/volumes/" & BootA
    end if
    display dialog "Merci de confirmer le prochain démarrage sur " & Prochain_boot
    -- change le volume de démarrage et redémarre immediatement
    do shell script "bless -mount " & (quoted form of Prochain_boot) & " - setboot" with administrator privileges
    do shell script "shutdown -r now" with administrator privileges
    Note : j'utilisais ce script sur Snow Leopard, mais je ne l'ai pas testé sur El Capitain. hors question de sécurité, il devrait fonctionner (El Capitain est plus verrouillé !)

    Enfin, j'ajoute que la commande "do shell script" permet de récupérer le résultat de la commande shell exécutée. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set ma_response to do shell script "ls -la HD/Users/Moi/Desktop/ "
    La variable ma_reponse contient le résultat de la commande shell (ici 'ls' pour lister les fichiers). Cette variable est de type texte dont on peut extraire les éléments Applescript comme les "paragraphes" (les lignes), les words (evident !), les items text (blocs séparés par certains caractères), ou encore les caractères eux-mêmes.

    Si ta commande shell risque de produire une erreur shell, tu peux entourer ton appel d'un bloc "try" / "on error" / "end try" qui te permet de gérer l'erreur si il y en a.

    Cordialement

Discussions similaires

  1. Script shell
    Par anzar dans le forum Linux
    Réponses: 4
    Dernier message: 03/12/2004, 14h41
  2. [JSP] script shell
    Par goolix dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/08/2004, 09h08
  3. Exécution d'un script shell
    Par Manu0086 dans le forum Linux
    Réponses: 8
    Dernier message: 15/06/2004, 16h31
  4. Explication script shell
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 14/06/2004, 13h54
  5. Cron + terminal + script shell
    Par nicolas.pissard dans le forum Linux
    Réponses: 3
    Dernier message: 17/03/2004, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo