shell - Problem mit script bei parameter

Das Forum fĂĽr den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!
Forumsregeln
Das Forum fĂĽr den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!

shell - Problem mit script bei parameter

Beitragvon radditz » So 08 Mai, 2005 10:14

hi.
ich will ein (sinnloses) shell script machen, welches die Parameter, die es bekommt, weitergibt an ein Unterprogramm
Leider funktioniert das nicht so wie gewĂĽnscht...

rechner.sh:
#!/bin/bash

expr $*


wenn ich aufrufe
rechner 3 + 3
passts, gibt er 6 aus
aber wie es so schön is, gibts ja auch ein Multiplizieren mit *
leider wird dieses * ja als wildcard gedeutet, d.h. einfach ĂĽbergeben geht net
jetz mĂĽsst ich \* nehmen, nur leider, funktioniert das trotzdem net
der \* wird ja dann zu einem * und dann wird expr wieder nur ein normaler * ĂĽbergeben

Wie kann ich das ändern/umgehen/sonst was machen...
danke
Telematica DSL Solo Pro 30 Mbit/s
Vorher: A1 VDSL 16 Mbit/s
radditz
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4399
Registriert: Mo 23 Jun, 2003 16:50

Beitragvon lordpeng » So 08 Mai, 2005 11:06

expr 3 \* 3 funktioniert ...

man expr

aber wennst schon unbedingt rechnen willst, solltest du eher was mit eingebauter rechenfunktion nehmen, anstelle auf externe befehle zurĂĽck zugreifen ...
lordpeng
Moderator
Moderator
 
Beiträge: 10199
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon radditz » So 08 Mai, 2005 11:09

jaja, der direkte aufruf davon funktioniert schon
aber ich muss die shell dazu bringen, dass sie mir das $* durch dieses 3 \* 3 ersetzt
Telematica DSL Solo Pro 30 Mbit/s
Vorher: A1 VDSL 16 Mbit/s
radditz
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4399
Registriert: Mo 23 Jun, 2003 16:50

Beitragvon lordpeng » So 08 Mai, 2005 11:34

versuchs hiermit, ganz ohne expr

#!/bin/bash
echo $(($1$2$3))

hth

btw, anstelle von $(1|2|3) kannst natĂĽrlich auch hier $* verwenden
lordpeng
Moderator
Moderator
 
Beiträge: 10199
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon radditz » So 08 Mai, 2005 17:28

naja, es ging mir nicht um das expr, es ging mir viel mehr darum, dass "*" bzw. \* ordentlich zu ĂĽbergeben,a ber ich probier das mal aus, was du da hingeschrieben hast
Telematica DSL Solo Pro 30 Mbit/s
Vorher: A1 VDSL 16 Mbit/s
radditz
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4399
Registriert: Mo 23 Jun, 2003 16:50


ZurĂĽck zu LINUX & UNIX-DERIVATE

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste