Lunar
Anmeldungsdatum: 17. März 2006
Beiträge: 5792
|
Onli schrieb: Funktionen direkt im if-Teil auszuführen und auf ihren return-Wert zu reagieren funktioniert bei mir in keiner Konstellation, und ich konnte auch kein Beispiel finden. Klar, mit echo stattdessen ginge das schon, aber das hast du nicht gemeint, oder?
Das kommt darauf an, was du mit "return-Wert" meinst. Die meisten Shells, u.a. eben auch bash, unterscheidet zwischen der Rückgabewert und der Ausgabe einer Funktion. Der Rückgabewert ist derjenige nummerische Wert, der an die return -Anweisung übergeben wird und dem Aufrufer durch den speziellen Parameter $? zur Verfügung gestellt wird. Dieser Rückgabewert zeigt sowohl bei Programmen als auch bei Funktionen Erfolg oder Fehlschlag der Ausführung an, wobei eine 0 für Erfolg, alle anderen Werte für einen Fehler stehen. Diesen Rückgabewert kann innerhalb eines if -Ausdrucks direkt verwendet werden. Angenommen, eine Funktion namens do_hello wird wie folgt definiert:
| do_hello () {
[[ "${1}" == "hello" ]] && return 0 || return 1;
}
|
Sie hat also den Rückgabewert 0, wenn das erste Argument gleich "hello" ist, andernfalls den Rückgabewert 1. Du hast in deinem Programm folgendes getan, um den Rückgabewert auszuwerten:
| do_hello "$1"
if [[ $? == 0 ]]; then
echo "Hello World"
fi
|
Dieser Code ist schlecht lesbar, weil der Vergleich auf einem magischen Parameter beruht, dessen Zusammenhang mit dem vorherigen Kommando nicht direkt ersichtlich ist. Folgendes funktioniert ebenfalls:
| if do_hello "$1"; then
echo "Hello World"
fi
|
Dieser Code ist zum oberen Äquivalent. if wertet immer den Rückgabewert des zuletzt im angegebene Ausdruck ausgeführten Kommandos aus. Genau genommen führt das erste Beispiel auch nur Kommando [[ aus, dessen Rückgabewert 0 ist, wenn der angegebene Vergleichsausdruck wahr ist. Die Ausgabe einer Funktion dagegen ist alles, was innerhalb der Funktion mittels "echo" oder über andere Programme ausgegeben wird. Diese Ausgabe lässt sich nicht direkt in if verwenden, sie muss mittels eines Unterprozessaufrufs $(do_hello "$1") in einer Variable gespeichert werden.
|
Onli
Ehemalige
(Themenstarter)
Anmeldungsdatum: 1. August 2005
Beiträge: 6941
|
Das war ausführlich. Ich wäre in zehn Jahren nicht darauf gekommen die [ ] wegzulassen. Das habe ich als notwendiges Syntaxelement betrachtet. Aber es macht Sinn. Danke.
|
Onli
Ehemalige
(Themenstarter)
Anmeldungsdatum: 1. August 2005
Beiträge: 6941
|
Die neue Version kann erkennen, dass es Nacht ist, und setzt dann entsprechende Bilder als Desktophintergrund.
|
kaschuen
Anmeldungsdatum: 30. September 2009
Beiträge: Zähle...
|
Ich habe mir izulu in der neuesten Version heruntergeladen. Es wird in ubuntu nicht unter "Anwendungen" angezeigt, lässt sich für einen simplen Anwender wie mich also keineswegs ohne weiteres starten. Inzwischen habe ich es dank zweistündiger Recherche jedoch geschafft. Ich glaube, es hat sogar verstanden, dass ich in Hannover lebe. Von einer Nachterkennung (Inzwischen ist es seit über einer Stunde draußen stockdunkel) oder gar einer Temperaturanzeige kann aber keine Rede sein. Diese Anwendung ist bisher leider nur etwas für Computerfreaks. Weniger geübte Nutzer wie ich sind damit überfordert. Schade!
|
Onli
Ehemalige
(Themenstarter)
Anmeldungsdatum: 1. August 2005
Beiträge: 6941
|
Hi kaschuen Da hast du nicht ganz unrecht. Izulu ist vom Aufbau her ein klassisches Kommandozeilenprogramm, und damit für jemanden, der das nicht gewöhnt ist, erstmal kompliziert. Ich skizziere mal kurz, wie das gedacht ist. Es gibt zwei Möglichkeiten, das Programm zu beeinflussen: Parameterübergabe oder Konfigurationsdatei. Parameterübergabe funktioniert so: Man öffnet ein Terminal oder besser den Starter per
Alt +
F2 und tippt dort den Startbefehl mit den Parametern, z.B.
izulu -c hannover -t -n -p -d &
Das würde per -c den Standort auf Hannover setzen, mit -t die Temperaturanzeige, mit -n den Nachtmodus, mit -p die Wettervorhersage aktivieren und mit -d das Programm dauerhaft laufen lassen. Das & setzt es in den Hintergrund und gibt das Terminal wieder frei. Den Standort will man vielleicht nicht immer angeben, daher kann man das in die Konfigurationsdatei schreiben, die liegt unter .izulu/config im Homeverzeichnis. Will man das Programm dauerhaft und bei jedem Start laufen lassen, muss man so einen Befehl wie den gezeigten in den Autostart eintragen. Danke für die Rückmeldung. Ich hoffe, das oben hilft ein bisschen. Gruß
|
kaschuen
Anmeldungsdatum: 30. September 2009
Beiträge: 2
|
Danke, Onli.
Ich hatte nicht damit gerechnet, so schnell eine Antwort zu bekommen. Jetzt klappt alles, sogar mit der Automatik nach einem Neustart.
Vielen Dank- Spitzenmäßige Betreuung!!
|
NewtonsLaw
Anmeldungsdatum: 29. Januar 2008
Beiträge: 352
Wohnort: Stadt der Liebe (Paris)
|
@ Onli: Kann man mit dem Programm auch Städte ausserhalb Deutschlands verwenden? Ich habs noch nicht probiert, deswegen die Frage!
|
Onli
Ehemalige
(Themenstarter)
Anmeldungsdatum: 1. August 2005
Beiträge: 6941
|
@NewtonsLaw: Ja, das funktioniert grundsätzlich weltweit. Wobei der Nachtmodus Probleme machen könnte, wenn dauerhaft Nacht ist. @kaschuen: Freut mich, danke. Gruß
|
Frank62
Anmeldungsdatum: 8. Dezember 2008
Beiträge: 2106
Wohnort: Borken
|
Onli schrieb: Hi kaschuen Da hast du nicht ganz unrecht. Izulu ist vom Aufbau her ein klassisches Kommandozeilenprogramm, und damit für jemanden, der das nicht gewöhnt ist, erstmal kompliziert. Ich skizziere mal kurz, wie das gedacht ist. Es gibt zwei Möglichkeiten, das Programm zu beeinflussen: Parameterübergabe oder Konfigurationsdatei. Parameterübergabe funktioniert so: Man öffnet ein Terminal oder besser den Starter per
Alt +
F2 und tippt dort den Startbefehl mit den Parametern, z.B.
izulu -c hannover -t -n -p -d &
Das würde per -c den Standort auf Hannover setzen, mit -t die Temperaturanzeige, mit -n den Nachtmodus, mit -p die Wettervorhersage aktivieren und mit -d das Programm dauerhaft laufen lassen. Das & setzt es in den Hintergrund und gibt das Terminal wieder frei.
Mit diesen Parametern bekomme ich ausser ein Hintergrund nix angezeigt chef@chef-desktop:~$ izulu -c Borken -t -n -p -d &
[2] 4668 Gibts nicht irgendwo ne fertige konfig Datei, wo ich nur noch die Stadt ein setzen muss ? (ich möchte alle möglichkeiten, die das Programm kann nutzen. Die Stadt wäre Weseke (NRW) oder auch Borken (NRW)
|
Onli
Ehemalige
(Themenstarter)
Anmeldungsdatum: 1. August 2005
Beiträge: 6941
|
Der Befehl funktioniert bei mir, Borken scheint keine Probleme zu verursachen. Ich denke, dass die Zusatzicons nicht gesehen werden können, weil das Hintergrundbild größer als der Monitor bzw die Auflösung ist. Mit den Standardeinstellungen von Gnome wird das nicht gestaucht. Das kann man aber umstellen unter http://wiki.ubuntuusers.de/GNOME_Desktop_anpassen#Hintergrundbild bzw in dem Menü. Grundsätzlich: Nein, ich will die Zusatzfunktionen nicht per default anmachen und glaube, dass das Einpflegen einer solchen Konfigurationsdatei komplizierter als das Anhänger der Parameter ist. Gruß
|
Frank62
Anmeldungsdatum: 8. Dezember 2008
Beiträge: 2106
Wohnort: Borken
|
jetzt hab ich es auch gesehen...bei mir werden die Bilder gezoomt (weil sonst hab ich rechts und links schwarze streifen) ich habe 2 Monitore im Dualsreen das heisst das das Bild 2960X1050 sein müsste .... ein Hintergrund wird bei mir mittig auf beiden monitoren angezeigt...
das Problem habe ich nur unter Ubuntu bei KDE 4 kann ich für jeden Monitor einzeln einstellen (auch verschiedene Bilder)
|
Onli
Ehemalige
(Themenstarter)
Anmeldungsdatum: 1. August 2005
Beiträge: 6941
|
Die Bilder sind ja auswechselbar, sind einfach als Datei vorhanden. Du kannst da also deine eigenen Bilder einsetzen.
|
aasche
Anmeldungsdatum: 30. Januar 2006
Beiträge: 14259
|
Onli schrieb: Download, weitere Erklärungen im Blog.
Der Artikel Baustelle/Wetteranzeige (spaeter dann Wetteranzeige) erwaehnt auch izulu. Sollten dort noch weitere Erklaerungen gemacht oder nur auf Dein Blog verwiesen werden? Oder lohnt sich inzwischen eine eigene Seite im Wiki hier (falls ueberhaupt gewuenscht)?
|
Onli
Ehemalige
(Themenstarter)
Anmeldungsdatum: 1. August 2005
Beiträge: 6941
|
Cool. Ne, ich finds völlig ok wenn dazu eine eigene Seite entsteht oder wenn auf der Sammelseite im Wiki detaillierter erklärt wird, würde auch mithelfen. Nur selbst anleiern wollte ich das nicht, das hätte dann arg was von Eigenwerbung (so viel bin ich ja nicht mehr hier)...
|
aasche
Anmeldungsdatum: 30. Januar 2006
Beiträge: 14259
|
Onli schrieb: Cool. Ne, ich finds völlig ok wenn dazu eine eigene Seite entsteht oder wenn auf der Sammelseite im Wiki detaillierter erklärt wird, würde auch mithelfen. Nur selbst anleiern wollte ich das nicht, das hätte dann arg was von Eigenwerbung (so viel bin ich ja nicht mehr hier)...
Dann lieber eine eigene Seite - damit die Uebersichtsseite auch uebersichtlich bleibt ☺ Weiteres hier: Izulu
|