alphazerp
22.09.2006, 10:59
Hallo Leute,
ich bin in der Ausbildung und soll mich damit im moment beschäftigen nur ich komm nicht richtig mit klar.
z.b. kenn ich verschachtelungen aus C++, nur in der Korn Shell komm ich damit nicht klar beim schreiben des Scripts.
z.b.:
para=2
set -A parawert \$$para
inhalt=`grep ${parawert[0]} $1`
hier oben leg ich mir ein Array an, hol mir aus meiner variablen para (counter) den aktuellen Wert raus. im momemt 2! Setze vor die 2 mit \$ das
$ Zeichen. dann hol ich mir aus meinem Array $2 wieder heraus mit -> ${parawert[0]}. Das mache ich deshalb weil $2 mir eigentlich
auslesen soll wie der Name des 2ten übergeben Parameter beim Scriptaufruf war. Dann soll er diesen Parameter in der datei $1 suchen
nur das funktioniert nicht. ich glaube der sucht in der datei $1 nach $2 und nicht nach dem übergebenen Parameter der sich
hinter $2 verbrigt z.b. ein String wie "ORA"
ich habe es auch mit verschachtelungen like --> inhalt=`grep `...` $1` <--- probiert, nur irgendwo habsch im internet gelesen das dies nicht geht.
Dort wurden andere Möglichkeiten mit () gezeigt. nur habe ich das nicht hinbekommen, also entweder binsch in Shell ein DAU oder irgendwas stimmt hier nicht.
Ich arbeite an einer AIX 4.3 Maschine über ein Windows Terminal. Eingewählt habsch mich mit "PuTTY"
Default Shell ist ksh und wird sepperat im script nochmal angegeben mit
#! /usr/bin/ksh
Seht ihr Fehler ? Inkompatibilitäten ?
p.s.: ich habe probleme mit der Syntax. Ich lerne aus einem Buch das z.b. dies unter Brace Extensions aufführt:
echo Austr{ia,alien,alia} <----- soll dann 3 ausgaben bringen
Austria Australien Australia <------ das kommt bei mir aber nicht. bei einem Kollegen unter der Bash Shell auf einer Linux Maschine gehts.
Das Buch sagt aber es soll für Bash und Korn Shell gehen. Jetzt frag ich mich wo liegt der Fehler. Großartig kann man ja nichts falsch machen.
Das Buch ist extra für Bash und Korn Shell und beschreibt eigentlich jeden Punkt wo unterschiede zwischen den Shells sind. Naja
ich finde irgendwie die Syntax in C++ einfacher bzw. orientiere mich vielleicht zu sehr an C++.
Könnt ihr mir Tipps geben ?
ich bin in der Ausbildung und soll mich damit im moment beschäftigen nur ich komm nicht richtig mit klar.
z.b. kenn ich verschachtelungen aus C++, nur in der Korn Shell komm ich damit nicht klar beim schreiben des Scripts.
z.b.:
para=2
set -A parawert \$$para
inhalt=`grep ${parawert[0]} $1`
hier oben leg ich mir ein Array an, hol mir aus meiner variablen para (counter) den aktuellen Wert raus. im momemt 2! Setze vor die 2 mit \$ das
$ Zeichen. dann hol ich mir aus meinem Array $2 wieder heraus mit -> ${parawert[0]}. Das mache ich deshalb weil $2 mir eigentlich
auslesen soll wie der Name des 2ten übergeben Parameter beim Scriptaufruf war. Dann soll er diesen Parameter in der datei $1 suchen
nur das funktioniert nicht. ich glaube der sucht in der datei $1 nach $2 und nicht nach dem übergebenen Parameter der sich
hinter $2 verbrigt z.b. ein String wie "ORA"
ich habe es auch mit verschachtelungen like --> inhalt=`grep `...` $1` <--- probiert, nur irgendwo habsch im internet gelesen das dies nicht geht.
Dort wurden andere Möglichkeiten mit () gezeigt. nur habe ich das nicht hinbekommen, also entweder binsch in Shell ein DAU oder irgendwas stimmt hier nicht.
Ich arbeite an einer AIX 4.3 Maschine über ein Windows Terminal. Eingewählt habsch mich mit "PuTTY"
Default Shell ist ksh und wird sepperat im script nochmal angegeben mit
#! /usr/bin/ksh
Seht ihr Fehler ? Inkompatibilitäten ?
p.s.: ich habe probleme mit der Syntax. Ich lerne aus einem Buch das z.b. dies unter Brace Extensions aufführt:
echo Austr{ia,alien,alia} <----- soll dann 3 ausgaben bringen
Austria Australien Australia <------ das kommt bei mir aber nicht. bei einem Kollegen unter der Bash Shell auf einer Linux Maschine gehts.
Das Buch sagt aber es soll für Bash und Korn Shell gehen. Jetzt frag ich mich wo liegt der Fehler. Großartig kann man ja nichts falsch machen.
Das Buch ist extra für Bash und Korn Shell und beschreibt eigentlich jeden Punkt wo unterschiede zwischen den Shells sind. Naja
ich finde irgendwie die Syntax in C++ einfacher bzw. orientiere mich vielleicht zu sehr an C++.
Könnt ihr mir Tipps geben ?