programmlauf überprüfen

also die seite geht nicgt code 403. soweit wies ich versteh inr die otion dafür das kein lehrer parameter zurück gegeben wird richtig?
 
So nadem ich das alles durchgewurstet hab stellen sich mir folgende fragen.
Code:
#!/bin/sh
prog="testprog"
[ -z "$(pidof $prog)" ] && $prog
prog="testprog" ist klar variablenzuweisung aber müssen die ""sein?'
[ -z "$(pidof $prog)" ] && $prog [ ] wofür? -z das was drin steht oder? $ aber ohne variabele warum? warum () um pidof? $$ ist mir auch schleierhaft
&&
In einer UNIX-Shell wird jedes Kommando als ein eigener Prozeß ausgeführt. Jeder Prozeß ist dabei durch seine Prozeßnummer von allen anderen Prozessen zu unterscheiden; Prozeßnummern sind also zu einem gegebenen Zeitpunkt eindeutig.
Die Prozeßnummer der eigenen Shell steht in der Variablen $$ zur Verfügung. Diese Variable wird oft verwendet, wenn man eindeutige Dateinamen für Zwischendateien erzeugen möchte.
HÄH
bitte um (er)klärung
 
Zuletzt bearbeitet:
Wenn du verstehen willst was der Code-Schnipsel macht, dann lies dir Shell-Tutorials durch. Das gehört nicht hier ins Forum.

Gruß
Oliver
 
hallo
ich hätte da ne frage
wie kann ich mir die in otionen des befehls test aus der busybox anzeigen lassen?

hintergrund ist der das ich die otion -le bräute die aber nicht eingebaut ist. man gibst auch nicht.
Code:
 busybox test
 busybox test -h
 busybox test -help
ohne busybox das gleiche

Code:
if test $testwert -le 1
das müste heisen ist testwert kleiner oder gleich 1 dann usw
alternatifen
 
Code:
root@fritz:/var/mod/root# cat test.sh
#!/bin/sh
testwert=0
if test $testwert -le 1; then
        echo "true"
else
        echo "false"
fi
root@fritz:/var/mod/root# sh -x ./test.sh
+ testwert=0
+ test 0 -le 1
+ echo true
true
Wo genau ist dein Problem?

Gruß
Oliver
 
hintergrund ist der das ich die otion -le bräute die aber nicht eingebaut ist. man gibst auch nicht.
Doch die gibt es schon bzw. die kannst mit der Konsole auf der Box testen:
Code:
root@fritz:/var/mod/root# test 1 [COLOR="red"]-le[/COLOR] 2
root@fritz:/var/mod/root# echo $?
[COLOR="red"]0[/COLOR]
root@fritz:/var/mod/root# test 3 [COLOR="red"]-le[/COLOR] 2
root@fritz:/var/mod/root# echo $?
[COLOR="red"]1[/COLOR]
root@fritz:/var/mod/root# test 2 [COLOR="red"]-le[/COLOR] 2
root@fritz:/var/mod/root# echo $?
[COLOR="red"]0[/COLOR]
 
Zuletzt bearbeitet:
stimmt die option ist vorhanden , mein fehler. aber das pro ist noch da mit der option -z sag ich im das der parameter leer sein kann. wenn er aber dann leer ist bringt er mir den fehler
sh: 1: unknown operand
was ja auch stimmt den pidof gibt wenn das prg nicht läuft keine ausgabe und "nix" ist nicht kleiner als was. wenn es läuft past alles. wie kann ich das umgehen bzw. welche lösung.


edit kann ich die fehlermeldung umwandeln in igendwas was man dann testen kann. z.b. fehlermeldung in 0 wandel und dann testen oder so
edit2 eftl. kann man dafür ein prg benutzen mit einer immer niedrigen pid
 
Zuletzt bearbeitet:
@Telman12: Dein Problem sitzt leider etwa 30cm. vor dem Bildschirm. Wenn die test-Funktion der bb nicht so tun würde, wie man es erwartet, würde auf der Box gar nichts laufen. Alle möglichen Shell-Skripte nutzen die test-Funktion. Und zwar sowohl AVM als auch wir in FREETZ. Und alle programmieren auch schon etwas unterschiedlich. Wenn trotz dieser Dialekte und Abweichungen alles immer noch geht und nur deine eigenen Skripte nicht so tun, wie du es dir vorstellst, dann musst du dich mehr mit den Shell-Basics beschäftigen, wie Oliver oben bereits sagte. Dazu gibt es im Netz genügend Beispiele. Außerdem kannst du auch unsrer Quellcode analysieren. Also, alle Quellen sind vorhanden. Du musst sie nur nehmen und verstehen.
Leider sehen wir es nicht als unsere Aufgabe, dich in Shell-Basics aufzuschlauen. Hättest du etwas kompliziertere und zudem FREETZ-spezifische Fragen gestellt, wäre es anders. Allgemeinfragen zu Shell-Basics gehören leider nicht hierher.

MfG
 
danke für die hilfe zur selbsthilfe
so nachdem ich tuts und so weiter gelesen habe poste ich mal das ergebniss. das mache ich nur deshalb um irgend welche fehler zu vermeiden(scherheit sabilität) die skripte laufen schon.
Code:
sleep 10
testwert="$(ps |grep -c nzbget)" #ps mit otion das ausgeben wird wieviele treffer
datum=$( date | cut -c 0-19 )	#datum und zeit
up=$( uptime  | cut -c 14-18 )	#wie lange läut die box schon
if test $testwert -le 5  #testen
	then
		/var/media/ftp/uStor01/nzbget/nzbget -D -c /var/media/ftp/uStor01/nzbget/nzbget.conf 2>&1 #startbefehl
		echo -e "\t \041 \041 \041 \041 \041 \041 \041 neugestartet um $datum die box war eingeschaltet $up" > /var/tmp/t ;cat /var/media/ftp/uStor01/log/nzb.log >> /var/tmp/t ;mv /var/tmp/t /var/media/ftp/uStor01/log/nzb.log #oben in log schreiben
	else
		echo "past um $datum die box uptime$up" > /var/tmp/t ;cat /var/media/ftp/uStor01/log/nzb.log >> /var/tmp/t ;mv /var/tmp/t /var/media/ftp/uStor01/log/nzb.log #oben in log schreiben 
fi
head -n 200 /var/media/ftp/uStor01/log/nzb.log >/var/tmp/e ;cat /var/tmp/e >/var/media/ftp/uStor01/log/nzb.log	#das log file auf 200 zeilen kürzen
chmod -R 777 /var/media/ftp/uStor01		#rechte überall setzen
das chmod ist beabsichtet weil sonst smb nicht rund läuft
5 deshalb weil nzbget normal mit 4 prozessen läuft +1 für suche
Code:
find /var/media/ftp/uStor01/load -mtime +7 -exec mv {} /var/media/ftp/uStor01/load/loe \;
find /var/media/ftp/uStor01/load/loe -mtime +21 -exec rm {} \;
DAS ZWEITE verschibt bzw löscht alte dateien
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.