Hallo
ich führe folgenden Befehl aus
./Anwendung Par1 Par2
und es funktioniert. Dabei ist Par1 ein Dateiname. Wenn ich mir nun ein Skript schreibe was mit find" diese Datei findet sieht das dann so aus:
find -iname ‚Par1‘ -exec Anwendung {} Par 2 ;
allerdings bricht das Skript ab mit:
find: ./Anwendung terminated by signal 11
also Segmentation fault, der ist aber vorhher nicht aufgetreten.
Woran kann das liegen?
RaCo
2
Hallo,
find -iname ‚Par1‘ -exec Anwendung {} Par 2 ;
allerdings bricht das Skript ab mit:
find: ./Anwendung terminated by signal 11
In so einem Fall empfiehlt es sich, das Skript zunächst mit
find -iname 'Par1' -exec echo Anwendung {} Par 2 \;
zu testen. Am besten nicht gleich im Skript, sondern im Terminalfenster.
Möglicherweise enthält der Pfadname Leerzeichen, oder aber find findet nix.
Ich mache so was sicherheitshalber so:
find ~ -iname 'Par1' | while read FILE
do
Anwendung {} Par 2
done
Gruß
Rainer
In so einem Fall empfiehlt es sich, das Skript zunächst mit
find -iname ‚Par1‘ -exec echo Anwendung {} Par 2 ;
zu testen. Am besten nicht gleich im Skript, sondern im
Terminalfenster.
Super, danke. Das hat mir geholfen zu sehen, dass Par1 als ./Par1 übernommen wurde. Kann ich das unterbinden? Ansonsten änder ich das im Quelltext…
RaCo
4
Das hat mir geholfen zu sehen, dass Par1 als ./Par1 übernommen wurde. Kann ich das unterbinden?
So z.B:
find -iname 'Par1' | while read FILE;do echo ${FILE:2};done
Aber besser wäre es natürlich schon, wenn das Programm auch mit ./Par1 zurecht kommen würde.
Okay super so funktionierts, danke vielmals