2014-12-16 6 views
5

Ich habe dieses Skript (unter anderem), die mein Hintergrundbild bei jeder Anmeldung/Mitternacht generiert. Es hat 755 Berechtigungen. Ein Teil des Codes:Bash-Skript unterschiedliche Ausgabe, wenn Doppelklick vs. im Terminal ausgeführt

#/bin/bash 

convert -size 1440x900 xc:none wall.png 
composite -gravity center ../pics/im256.png wall.png wall.png 
composite -geometry 118x67+661+578 ../pics/im-title-white.png wall.png wall.png 

TIME=`$HOME/bin/time.py | grep "\."` 

if [[ $TIME == *\'* ]] 
then 
    # <...1...> 
else 
    # <...2...> 
fi 

Ich bin interessiert, wenn meine $TIME Variable ' Symbole in sich hat. Wenn es keine ' Symbole gibt - alles ist gut.

Jetzt, wenn ich weiß, gibt es mindestens ein Symbol (oder ich kann zwingen, so zu machen), wenn ich auf das Skript doppelklicken finde ich mich in else Anweisung, wenn ich das Skript im Terminal ausführen - ich finde mich in then Aussage. Ich möchte immer zu then Aussage kommen, aber wie?

ich abgeschnitten den Teil, der versagt (links - richtig, richtig - falsch): einen Beitrag zu schreiben

correct imagewrong picture

+2

Ich bin upvoting und voting-to-close zur gleichen Zeit, denn eigentlich ist es eine gültige und vollständige Frage, mit einem hilfreichen Titel. Das Problem war nur sehr gering. Nichtsdestotrotz ist es eine schöne Erinnerung, dass Shell- und grafische Umgebungen die Skripts auf eine etwas andere Art und Weise aufrufen. – quetzalcoatl

Antwort

3

Es hat mich, bis ich, dass shebang bemerken, die nicht eigentlich ein shebang ist. #!/bin/bash behebt das Problem.

Es scheint, dass inkorrektes Shebang auf /bin/sh voreingestellt wurde, das nicht korrekt ausgeführt werden konnte. Meine Login-Shell ist /bin/bash, was bedeutet, dass die Shell auch ohne bash mit dem Schlüsselwort zB: ./script.sh standardmäßig bash und nicht sh läuft. Warum konnte es nicht dasselbe mit Doppelklick tun ..

+0

Erarbeiten Sie Ihre Antwort und akzeptieren Sie sie, wenn das Problem gelöst wurde. – rekaszeru

+1

Versucht es: "Sie können Ihre eigene Antwort in 2 Tagen akzeptieren" –

+0

Oh, Sie haben Recht. :) Sie sollten Ihrer Antwort noch etwas Klarheit geben und auf das Problem/den Fehler hinweisen, damit andere daraus lernen können. – rekaszeru

Verwandte Themen