Hallo, ich moechte in einem bash-Script eine vom find-Kommando gefundene Datei "spaeter" weiterverarbeiten: do while test -e $EVENT do ABC=`find . -name "*.fits"` done echo $ABC Gebe ich auf der Kommandozeile ABC=`find . -name "*.fits" ein, dann steht in ABC auch etwas drin: echo $ABC ./file1.fits ./file2.fits Leider ist die Variable ABC leer, wenn ich den Script abarbeiten lasse. Klammere/quote ich da vielleicht etwas falsch? Eine Zuweisung in der Art ABC={} innerhalb des find-Konstrukts waere zwar wohl das Einfachste, scheint aber ebenfalls nicht zulaessig zu sein. Bin dankbar fuer Tips. Ciao, Bernd.
Bernd Fuhrmann wrote:
Hallo,
ich moechte in einem bash-Script eine vom find-Kommando gefundene Datei "spaeter" weiterverarbeiten:
do while test -e $EVENT do ABC=`find . -name "*.fits"` done
echo $ABC
Gebe ich auf der Kommandozeile
ABC=`find . -name "*.fits"
ein, dann steht in ABC auch etwas drin:
echo $ABC ./file1.fits ./file2.fits
Leider ist die Variable ABC leer, wenn ich den Script abarbeiten lasse. Klammere/quote ich da vielleicht etwas falsch?
Eine Zuweisung in der Art ABC={} innerhalb des find-Konstrukts waere zwar wohl das Einfachste, scheint aber ebenfalls nicht zulaessig zu sein.
vielleicht sowas? #!/bin/bash an_array=(`find /home/myself/C -name "*.c"`); echo done for I in ${an_array[*]}; do echo -e . done oder echo ${an_array[1]}; ... etc Gruß, Daniel
Bernd Fuhrmann wrote:
while test -e $EVENT
Bist Du sicher, daß die Bedingung erfüllt ist? Welcher Dateiname steht in EVENT?
do ABC=`find . -name "*.fits"` done
echo $ABC
Leider ist die Variable ABC leer, wenn ich den Script abarbeiten lasse. Klammere/quote ich da vielleicht etwas falsch?
- Matthias
* Bernd Fuhrmann schrieb am 11.Jun.2001:
ich moechte in einem bash-Script eine vom find-Kommando gefundene Datei "spaeter" weiterverarbeiten:
do while test -e $EVENT do ABC=`find . -name "*.fits"` done
echo $ABC
Gebe ich auf der Kommandozeile
ABC=`find . -name "*.fits"
ein, dann steht in ABC auch etwas drin:
echo $ABC ./file1.fits ./file2.fits
Leider ist die Variable ABC leer, wenn ich den Script abarbeiten lasse. Klammere/quote ich da vielleicht etwas falsch?
Gehe ich Recht in der Annahme, daß Du das skript aufrufst und dann später in der shell echo $ABC machen möchtest? Das geht grundsätzlich nicht. Da gibt es auch keine Lösung für, außer Du schreibst das Ergebnis in einer Datei, oder aber Du machst es mit der shell, ohne eine andere aufzurufen. Das machst Du, indem Du . skript anstelle von skript sagst. Alternativ kannst Du auch source skript sagen. Bernd -- Bei Fragen an die Liste erst mal nachschauen, ob es diese Frage nicht schon einmal gegeben hat. Ein Archiv der Liste findest Du auf: http://lists.suse.com/archives/suse-linux |Zufallssignatur 7
Bernd Fuhrmann wrote:
Hallo,
ich moechte in einem bash-Script eine vom find-Kommando gefundene Datei "spaeter" weiterverarbeiten:
do while test -e $EVENT do ABC=`find . -name "*.fits"` done
echo $ABC
Wo ist das export-Kommando? Wenn ABC innerhalb des Scripts den Wert zugewiesen bekommt und ABC nicht exportiert wird, dann existiert die Variable ABC in der Shell nicht mehr. Also am Ende ein export ABC einfügen und schon sollt es rennen. - Michael
* Michael Gerdelmann schrieb am 11.Jun.2001:
Wo ist das export-Kommando? Wenn ABC innerhalb des Scripts den Wert zugewiesen bekommt und ABC nicht exportiert wird, dann existiert die Variable ABC in der Shell nicht mehr. Also am Ende ein
export ABC
einfügen und schon sollt es rennen.
Nein, tut es nicht. export macht aus einer shellvariablen eine Umgebungsvariable, die alle Kindprozesse lesen können, nicht aber der Elterprozeß oder irgendwelche anderen. Bernd -- Was ist quoten? Quoten ist das Zitieren aus einer mail, der man antwortet. Und wie macht man es richtig? Zitate werden mit "> " gekennzeichnet. Nicht mehr als nötig zitieren. Vor den Abschnitten das Zitat, auf das man sich bezieht, mit einer Zeile Abstand oben und unten. |Zufallssignatur 12
participants (6)
-
Andre Heine
-
Bernd Brodesser
-
Bernd Fuhrmann
-
D.W.
-
Matthias Kleine
-
Michael Gerdelmann