Kleines Shellscript zum ändern des Hibernatemodes

  1. faJa

    faJa Thread StarterMacUser Mitglied

    Mitglied seit:
    02.11.2005
    Beiträge:
    766
    Zustimmungen:
    23
    Ich hab heute mal ein kleines Shellscript geschrieben um den Hibernatemode zu switchen. Interessant sind für mich gewesen 0 (schnell aber unsicher) und 3 (langsam aber sicher).
    Ich habe es ab und an gerne das mein MacBook Pro schnell einschlafen soll, daher switche ich vorher in den schnellen Modus und ggfs. wieder zurück (wenn ich keine Steckdose parat habe).

    Ist vielleicht für diejenigen Interessant die sich den Befehl nicht immer merken wollen:

    Code:
    # Script switches between Hibernatemode 0 (fast but unsafe) and 3 (slow but safe).
    
    P0=$0
    P1=$1
    CSTATE=`pmset -g | grep hibernatemode | awk {'print $2'}`
    
    IFS_DEF=$IFS
    IFS="/"
    for i in $P0; do
        NAME=$i
    done
    IFS=$IFS_DEF
    
    if [[ $P1 == "-s" ]]; then
        if [[ $CSTATE -eq 3 ]]; then
            sudo pmset -a hibernatemode 0
            echo "Hibernatemode switched from $CSTATE to 0"
            exit
        fi
        if [[ $CSTATE -eq 0 ]]; then
            sudo pmset -a hibernatemode 3
            echo "Hibernatemode switched from $CSTATE to 3"
            exit
        fi
    else
        echo "Hibernatemode is set to $CSTATE"
        echo "Type '$NAME -s' to switch"
    fi
    
    Viel Spaß damit!
     
    faJa, 20.03.2007
  2. Isegrim242

    Isegrim242MacUser Mitglied

    Mitglied seit:
    21.07.2005
    Beiträge:
    3.166
    Zustimmungen:
    269
    ...schöne Sache, da gibt's doch aber auch schon ein widget.
     
    Isegrim242, 20.03.2007
  3. faJa

    faJa Thread StarterMacUser Mitglied

    Mitglied seit:
    02.11.2005
    Beiträge:
    766
    Zustimmungen:
    23
    Geschmackssache, ich habe für sowas gerne Shellskripte - da weiß ich wenigstens was sie machen :) Das Widget hatte ich auch einmal genutzt und dann nie wieder - kam per Widget nicht mehr aus dem Deepsleep Modus raus.

    Vielleicht hat der eine oder andere ja Verwendung dafür.
     
    faJa, 20.03.2007
  4. Besimo

    BesimoMacUser Mitglied

    Mitglied seit:
    29.10.2006
    Beiträge:
    316
    Zustimmungen:
    18

    Hi!

    Ich habe das Ganze jetzt mal unter Leopard versucht, aber leider gibt mir AppleScript einen Fehler bezüglich des ersten $ aus.
    Hast Du eine Idee, was man da machen kann?
    Ich würde Dein Script nämlich sehr gern nutzen!

    [​IMG]
     

    Anhänge:

    • Skripteditor.jpg
      Dateigröße:
      27,2 KB
      Aufrufe:
      83
    Besimo, 30.10.2007
  5. Rajmund

    RajmundMacUser Mitglied

    Mitglied seit:
    15.04.2006
    Beiträge:
    540
    Zustimmungen:
    58
    Das ist kein AppleScript, sondern eins für die bash, aufrufbar also im Terminal.

    Wenn man als erste Zeile noch

    Code:
    #!/bin/bash
    sowie danach ne Leerzeile einfügt, sodann die Datei mit dem Befehl

    Code:
    chmod u+x Dateiname
    
    ausführbar macht, ruft man es im Terminal mit

    Code:
    ./Dateiname -s
    
    auf (vorausgesetzt, man befindet sich in dem Verzeichnis, wo das Skript liegt).
     
    Rajmund, 30.10.2007
  6. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    für mich sieht das auch eher nach einem Bash-Script aus! :)
     
    wegus, 30.10.2007
  7. faJa

    faJa Thread StarterMacUser Mitglied

    Mitglied seit:
    02.11.2005
    Beiträge:
    766
    Zustimmungen:
    23
    Es ist in der Tat ein Bash Script.

    Allerdings funktioniert es auch wunderbar ohne "#!/bin/bash" am Anfang.

    Das Skript kann man auch Global aufrufen, egal wo man sich befindet. Dafür gibt es mehrere Möglichkeiten:

    a) das Skript muss nach /bin kopiert und ausführbar gemacht werden
    b) sich selbst ein .sbin Verzeichnis im Homeverzeichnis anlegen, dort das Skript ablegen und die PATH Variable dementsprechend anpassen.

    Es ist auch Leopard erprobt, bei mir verrichtet es wunderbar seinen Dienst.

    Bei Fragen schießt los.

    Hier die aktuellste Version von mir, mit kleinen Änderungen:

    Code:
    #!/bin/bash
    
    # Script switches between Hibernatemode 0 (fast but unsafe) and 3 (slow but safe).
    
    P0=$0
    P1=$1
    CSTATE=`pmset -g | grep hibernatemode | awk {'print $2'}`
    
    IFS_DEF=$IFS
    IFS="/"
    for i in $P0; do
        NAME=$i
    done
    IFS=$IFS_DEF
    
    if [[ $P1 == "-s" ]]; then
        if [[ $CSTATE -eq 3 ]]; then
            sudo pmset -a hibernatemode 0
            echo "Hibernatemode switched from $CSTATE to 0"
            exit
        fi
        if [[ $CSTATE -eq 0 ]]; then
            sudo pmset -a hibernatemode 3
            echo "Hibernatemode switched from $CSTATE to 3"
            exit
        fi
    else
        echo ""
        echo "Hibernatemode is set to $CSTATE"
        echo "Type '$NAME -s' to switch"
        echo ""
        echo "--------------- MODES ---------------"
        echo "0: fast, unsafe in case of powerloss"
        echo "3: slow, safe in case of powerloss"
        echo ""
     
    faJa, 30.10.2007
  8. Besimo

    BesimoMacUser Mitglied

    Mitglied seit:
    29.10.2006
    Beiträge:
    316
    Zustimmungen:
    18
    Um es "umständlicher" zu machen, könnte ich das Ganze auch via Automator lösen, indem ich in Automator "Shell-Skript ausführen" wähle und dort dann Dein Skript einfüge, oder?
    Ich würde das Ganze dann als kleines Programm speichern...
     
    Besimo, 30.10.2007
  9. faJa

    faJa Thread StarterMacUser Mitglied

    Mitglied seit:
    02.11.2005
    Beiträge:
    766
    Zustimmungen:
    23
    Wäre eine Idee, müsstest Du mal ausprobieren.
    Das Shellskript müsste dann nur mit dem Parameter '-s' gestartet werden, damit er den Status wechselt.

    Einen Nachteil hat die Sache dann natürlich, Du kannst nicht "mal eben" abfragen auf welchem Status der Hibernatemode gerade steht.
     
    faJa, 31.10.2007
Die Seite wird geladen...
Ähnliche Themen - Kleines Shellscript zum
  1. Arno24
    Antworten:
    6
    Aufrufe:
    411
  2. roedert
    Antworten:
    11
    Aufrufe:
    257
    agrajag
    18.10.2016
  3. FCPXMan
    Antworten:
    1
    Aufrufe:
    266
    FCPXMan
    27.04.2015
  4. Feudalus
    Antworten:
    3
    Aufrufe:
    473
    spaceman88
    22.08.2011
  5. hquadrat
    Antworten:
    1
    Aufrufe:
    1.952
    falkgottschalk
    24.09.2010