Probleme mit Shell-Scripts

profmaad

Neuer User
Mitglied seit
4 Okt 2006
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
Hallo alle miteinander,

ich versuche mir derzeit ein paar nette Shell-Scripts für meine Box (Fritz!Box WLAN 3030) zu schreiben.

Jedoch kämpfe ich derzeit mit den eingeschränkten Möglichkeiten der ASH-Shell gegenüber der BASH, die ich ja leider auf der Box nicht zur Verfügung habe.

Kann mir beispielsweise jemand erklären, wie entsprechender Code auf der Box aussehen müsste:
> declare -i rest=$1
> rest=rest/2

Ich bekomme es zwar hin, Variablen anzulegen und mit Strings zu füllen. Allerdings habe ich es noch nicht hinbekommen, mit ihnen zu rechnen.

Kann mir da jemand weiterhelfen?

Danke im Voraus und Ciao,
Prof. MAAD
 
Zuletzt bearbeitet:
Vielen Dank für die schnelle Antwort.

Das hat mein Problem gelöst.
Jedoch stehe ich nun vor einem neuem Problem.

Wie schaffe ich es, einem Script das Ergebnis eines anderen Scripts als Parameter zu übergeben.

Im Klartext:
Ich habe ein Script "sh1.sh", dass als Ergebnis eine Zahl auf der Konsole ausspukt. Ich habe außerdem ein Script "sh2.sh", dass eine Zahl als Parameter braucht und intern auf diese per $1 zugreift.
Wie schaffe ich es, dass Script "sh2.sh" mit der Ausgabe von "sh1.sh" als Parameter $1 aufgerufen wird?

Danke im Voraus und Ciao,
Prof. MAAD
 
Wenn sh1.sh dies ist:
Code:
#! /bin/sh

echo 17
exit 0
Und Script sh2.sh dies hier
Code:
#! /bin/sh

if [ "x$1" = "x" ] ; then
  value=1
else
  value="$1"
fi

let result=$value/3
echo $result
exit 0
dann kannst Du das Ergebnis vom ersten Script in das zweite so übergeben:
Code:
# ./sh2.sh `./sh1.sh`
Beachte, daß dies Backquotes, keine normalen Quotes sind.

Es wäre auch möglich, über Standard-Input zu gehen. Dann müßte Script sh2.sh jedoch so aussehen
Code:
#! /bin/sh

value=`cat`

let result=$value/3
echo $result
exit 0
und der Aufruf dann
Code:
# ./sh1.sh | ./sh2.sh
Na? ;-)

--gandalf.
 
Vielen Dank nochmals, das hat funktioniert.

Nun noch eine, hoffentlich, letzte Frage, die allerdings in eine andere Richtung geht:
Gibt es eine Möglichkeit, zu verhindern, dass die Box von sich aus den Status der LED's verändert.
Ich tue dies in einem Script, jedoch lässt meine Box von sich aus immer die Power-LED blinken und schaltet die LAN-LED an, wenn ein Kabel angesteckt ist.

Mir ist schon klar, dass das das normale Verhalten der Box ist. Ich möchte es jedoch "abstellen", da ich über die LED's andere Status-Infos ausgeben lasse, und mir die Box also immer "dazwischenfunkt".

Hat da jemand eine Idee?

Danke im Voraus und Ciao,
Prof. MAAD
 
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.