Kontrolle ob ein Shell richtig ausgeführt wird.

Atalantia

Atalantia

Aktives Mitglied
Thread Starter
Dabei seit
26.11.2009
Beiträge
1.893
Reaktionspunkte
431
Hallo,
ich habe folgendes bash script um Safari zu resetten:
Code:
#!/bin/bash
rm -Rf ~/Library/Caches/Apple\ -\ Safari\ -\ Safari\ Extensions\ Gallery; \
rm -Rf ~/Library/Caches/Metadata/Safari; \
rm -Rf ~/Library/Caches/com.apple.Safari; \
rm -Rf ~/Library/Caches/com.apple.WebKit.PluginProcess; \
rm -Rf ~/Library/Cookies/Cookies.binarycookies; \
rm -Rf ~/Library/Preferences/Apple\ -\ Safari\ -\ Safari\ Extensions\ Gallery; \
rm -Rf ~/Library/Preferences/com.apple.Safari.LSSharedFileList.plist; \
rm -Rf ~/Library/Preferences/com.apple.Safari.RSS.plist; \
rm -Rf ~/Library/Preferences/com.apple.Safari.plist; \
rm -Rf ~/Library/Preferences/com.apple.WebFoundation.plist; \
rm -Rf ~/Library/Preferences/com.apple.WebKit.PluginHost.plist; \
rm -Rf ~/Library/Preferences/com.apple.WebKit.PluginProcess.plist; \
rm -Rf ~/Library/PubSub/Database; \
rm -Rf ~/Library/Saved\ Application\ State/com.apple.Safari.savedState

Wenn ich es im Terminal ausführe sehe ich nur:
Code:
Computername:~ benutzer$ /Users/benutzer/Desktop/SafariReset ; exit;
logout

[Prozess beendet]
Kann man irgendwie kontrollieren on das Script korrekt ausgeführt wurde?
 
Hallo,

ich habe Dir schnell eine schöne Lösung in AppleScript getippt.
Siehe unten.

Deine Kommandos einfach oben hineinkopieren.
Das Skript kannst Du dann als .app abspeichern und dann immer via doppelklick starten.
Somit ist es schöner zu bedienen.

Viele Grüße

Code:
--

set cmdText to "rm '/Users/iam/Downloads/Neuer Ordner'
rm '/Users/iam/Downloads/Neuer Ordner 2'
rm '/Users/iam/Downloads/Neuer Ordner 3'
rm '/Users/iam/Downloads/Neuer Ordner 4'"

if ((count of cmdText) < 1) then
   
    return -1
   
end if

--

set cmdLines to paragraphs in cmdText

if ((count of cmdLines) < 1) then
   
    return -2
   
end if

--

repeat with nLine in cmdLines
   
    --
   
    try
       
        --
       
       do shell script nLine
       
        --
       
    on error errorMessage number errorNumber
       
        --
       
        set alertReturn to display alert ("Error " & errorNumber) message errorMessage as critical buttons {"Alles abbrechen", "OK"}
       
        --
       
        set buttonReturn to button returned of alertReturn
       
        if buttonReturn is equal to "Alles abbrechen" then
           
            return -3
           
        end if
       
        --
       
    end try
   
    --
   
end repeat

--

return 1

--
 
Auch cool. Wollte aber beim reinen shell Script bleiben.
 
set -e
set -u

Code:
help set

  -e  Exit immediately if a command exits with a non-zero status.

und/oder mit dem exit status ($0) nach jedem command. Du kannst die einzelnen rm auch mit && koppeln und jedes weitere nur ausführen wenn das vorherige rm okay war.

Was soll der backslash am Ende der Zeilen in dem Skript?
 
  • Gefällt mir
  • Traurig
Reaktionen: UnixCoon und Atalantia
...Was soll der backslash am Ende der Zeilen in dem Skript?
Ja, das war die entscheidende Frage. Ich habe das Script jetzt mal folgendermassen zusammengeschraubt. Übrigens alles ohne Ahnung nur (einfach) zusammengegoogelt:
Code:
#!/bin/bash
if rm -Rf ~/Library/Caches/Apple\ -\ Safari\ -\ Safari\ Extensions\ Gallery; then
    printf 'Caches Extensions succeeded\n'
else
    printf 'Caches Extensions failed\n'
fi
if rm -Rf ~/Library/Caches/Metadata/Safari; then
    printf 'Metadata succeeded\n'
else
    printf 'Metadata failed\n'
fi

if rm -Rf ~/Library/Caches/com.apple.Safari; then
    printf 'Caches succeeded\n'
else
    printf 'Caches failed\n'
fi

if rm -Rf ~/Library/Caches/com.apple.WebKit.PluginProcess; then
    printf 'WebKit.PluginProcess succeeded\n'
else
    printf 'WebKit.PluginProcess failed\n'
fi

if rm -Rf ~/Library/Cookies/Cookies.binarycookies; then
    printf 'Cookies succeeded\n'
else
    printf 'Cookies failed\n'
fi

if rm -Rf ~/Library/Preferences/Apple\ -\ Safari\ -\ Safari\ Extensions\ Gallery; then
    printf 'Preferences Extensions succeeded\n'
else
    printf 'Preferences Extensions failed\n'
fi

if rm -Rf ~/Library/Preferences/com.apple.Safari.LSSharedFileList.plist; then
    printf 'LSSharedFileList succeeded\n'
else
    printf 'LSSharedFileList failed\n'
fi

if rm -Rf ~/Library/Preferences/com.apple.Safari.RSS.plist; then
    printf 'RSS succeeded\n'
else
    printf 'RSS failed\n'
fi

if rm -Rf ~/Library/Preferences/com.apple.Safari.plist; then
    printf 'Preferences Safari succeeded\n'
else
    printf 'Preferences Safari failed\n'
fi

if rm -Rf ~/Library/Preferences/com.apple.WebFoundation.plist; then
    printf 'WebFoundation succeeded\n'
else
    printf 'WebFoundation failed\n'
fi

if rm -Rf ~/Library/Preferences/com.apple.WebKit.PluginHost.plist; then
    printf 'WebKit.PluginHost succeeded\n'
else
    printf 'WebKit.PluginHost failed\n'
fi

if rm -Rf ~/Library/Preferences/com.apple.WebKit.PluginProcess.plist; then
    printf 'WebKit.PluginProcess succeeded\n'
else
    printf 'WebKit.PluginProcess failed\n'
fi

if rm -Rf ~/Library/PubSub/Database; then
    printf 'Database succeeded\n'
else
    printf 'Database failed\n'
fi

if rm -Rf ~/Library/Saved\ Application\ State/com.apple.Safari.savedState; then
    printf 'savedState succeeded\n'
else
    printf 'savedState failed\n'
fi
 
  • Gefällt mir
Reaktionen: UnixCoon
Zurück
Oben Unten