hi,
ich habe ein Problem.
ich muss jede Menge strings einer variable zuweisen die in einem shell script der reihe nach einem Programm zur Auswertung übergeben werden soll.
Also:
#strings
start
stop
weiter
vor
zurück
up
down
left
usw .....
program= Program
variable="Start"
$program$variable
geht das überhaupt mit einem shell script.
wichtig ist das der string in der variable in " " seht und nach einander ersetzt und abgearbeitet wird.
danke
vobie
strings in variable mit schleife einsetzen ?
strings in variable mit schleife einsetzen ?
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: strings in variable mit schleife einsetzen ?
Habe es noch nicht so ganz verstanden, aber damit immer wieder eine neue Zeile aus einer Datei (oder woher auch immer) gelesen wird, musst du wohl einen Filedeskriptor verwenden.
In etwa so:
In etwa so:
Code: Alles auswählen
#!/bin/bash
exec 3< $1
while read line <&3
do
echo $line
echo -n "Next line? [yes/no]: "
read
[ "$REPLY" = "n" ] && break
done
# Filedeskriptor aufloesen
exec 3>&-
Oh, yeah!
Re: strings in variable mit schleife einsetzen ?
Ich bin mir auch nicht sicher, ob ich das Problem korrekt verstanden habe. (btw: Du solltest besser *das Problem* beschreiben und nicht *deinen Implementierungsvorschlag*.)
Was spricht gegen sowas?
Was spricht gegen sowas?
Code: Alles auswählen
for i in start stop weiter vor zurück up down left "zwei Worte" ; do
program "$i"
done
Use ed once in a while!
Re: strings in variable mit schleife einsetzen ?
hi,
danke erst mal,
Vielleicht habe ich mich wirklich nicht so richtig ausgedrückt.
Ich habe ein Programm das bestimmte Argumente bei der Eingabe erwartet und diese dann ausführt.
Nun gibt es aber ca 150 verschiedene Argumente die das Programm der reihe nach (die Argumente können sich auch wiederholen oder die Reihenfolge kann sich ändern) abarbeiten soll.
Beispiel
ich habe 200 IP Adressen die sollen in einer bestimmten, durch z.b. eine Steuer-Datei, festgelegten Reihenfolge angepingt werden.
also
Datei_1:
192.168.xxx.xx1
192.168.xxx.xx2
192.168.xxx.xx3
192.168.xxx.xx4
...
Datei_2:
192.168.xxx.xx4
192.168.xxx.xx6
192.168.xxx.x10
192.168.xxx.x25
...
im skript
#var_ip
ping -c1 $var_ip
...
var_ip ist dann die IP aus Datei_1 oder Datei_2
Ist nur ein Beispiel !
Syntax:
Programm --action="Argument"
Das Programm erwartet die Argumente in " " , also Programm --action="vor" oder Programm --aktion="up" usw.
hoffe es ist jetzt verständlicher
vobie
danke erst mal,
Vielleicht habe ich mich wirklich nicht so richtig ausgedrückt.
Ich habe ein Programm das bestimmte Argumente bei der Eingabe erwartet und diese dann ausführt.
Nun gibt es aber ca 150 verschiedene Argumente die das Programm der reihe nach (die Argumente können sich auch wiederholen oder die Reihenfolge kann sich ändern) abarbeiten soll.
Beispiel
ich habe 200 IP Adressen die sollen in einer bestimmten, durch z.b. eine Steuer-Datei, festgelegten Reihenfolge angepingt werden.
also
Datei_1:
192.168.xxx.xx1
192.168.xxx.xx2
192.168.xxx.xx3
192.168.xxx.xx4
...
Datei_2:
192.168.xxx.xx4
192.168.xxx.xx6
192.168.xxx.x10
192.168.xxx.x25
...
im skript
#var_ip
ping -c1 $var_ip
...
var_ip ist dann die IP aus Datei_1 oder Datei_2
Ist nur ein Beispiel !
Syntax:
Programm --action="Argument"
Das Programm erwartet die Argumente in " " , also Programm --action="vor" oder Programm --aktion="up" usw.
hoffe es ist jetzt verständlicher
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: strings in variable mit schleife einsetzen ?
Ne ganz simple Variante, wenn die Daten zeilenweise vorliegen:
Aufruf z.B. so:
Und das Ergebnis:
Wen du die Parameter in einer Datei hast, dann halt einfach so:
Code: Alles auswählen
#!/bin/bash
while read arg; do
echo "Argument: $arg"
done
Code: Alles auswählen
seq 10 | ./script.sh
Code: Alles auswählen
Argument: 1
Argument: 2
Argument: 3
Argument: 4
Argument: 5
Argument: 6
Argument: 7
Argument: 8
Argument: 9
Argument: 10
Code: Alles auswählen
./script.sh < datei
Re: strings in variable mit schleife einsetzen ?
danke
probiere ich gleich mal aus
vobie
probiere ich gleich mal aus
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.