awk: warum gibt close -1 zurück ?

wilma.cray

wilma.cray

Grünschnabel
Hallo,

bei diesem Gawk-Skript liefert close() ein -1 zurück. Warum ?
Das File sortiert.txt wurde erfolgreich von sort angelegt ...
Ist ein close in dieser Situation nicht notwendig?
?(

BEGIN{
print "b\n\na\nx\n9" | "sort > sortiert.txt"
error = close ("sort > sortiert.txt")
print error
if (error) {print "close ging schief"} else {print "close ok"}
}



In diesem Beispiel liefert close() erwartungsgemäß 0.
File foo.txt erfolgreich angelegt:

BEGIN{
print "bin der inhalt" > "foo.txt"
error= close ("foo.txt")
if (error) {print "close ging schief"} else {print "close ok"}
}



Auch dieses Beispiel klappt erwartungsgemäß. Close gibt 0 zurück:

BEGIN{
"date" | getline
if (!NF) {exit -1;}
print "Datum: ", $0
error=close("date")
if (error) {print "close ging schief"} else {print "close ok"}
}
 
Zuletzt bearbeitet:
geht das vielleicht?

BEGIN{
print "b\n\na\nx\n9" | sort > sortiert.txt
error = close ("sortiert.txt")
if (error) {print "close ging schief"} else {print "close ok"}
}

mit b\n\na\nx\n9 erstellst du einmal zwei Leerzeilen hintereinander, bei sort dürfen aber keine Leerzeilen zwischen den Daten sein, glaube ich.
 
Mist, im Filehandler war ein Leerzeichen zuviel:
Code:
"sort > sortiert.txt"
"sort  > sortiert.txt"

:O
 

Ähnliche Themen

Windows clients können nicht mehr auf lange laufendes System zugreifen

Last mit etc/passwd anzeigen lassen

simple Freigabe trotz PDC unmöglich?

Backup Skript automatisch ausführen mit udev

skript aus der kommandozeile starten

Zurück
Oben