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:

profmaad

Neuer User
Mitglied seit
4 Okt 2006
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
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
 
G

gandalf94305

Guest
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.
 

profmaad

Neuer User
Mitglied seit
4 Okt 2006
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
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
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,891
Beiträge
2,027,811
Mitglieder
351,017
Neuestes Mitglied
mucfaber