2016-10-01 3 views
2

Ich versuche cmp zu verwenden Ausgänge von zwei Befehlen (Bourne-Shell) zu vergleichen:gibt es Prozess Substitution in Bourne Shell wie in Bash?

cmp < (ls $ file1) < (ls file2 $)

in Es funktioniert gut in Bash, aber kann nicht funktionieren Bourne. Gibt es eine Lösung? Vielen Dank!

+1

Nein, es ist nicht. –

+0

Auch ich habe darauf gehofft. Ich habe Shell-Skripte, die leichter zu verstehen wären, wenn ich Prozesssubstitution zur Verfügung hätte, und kaufen, dass die meisten meiner Skripte Bourne-Shell-kompatibel sind. Ich würde daran denken, dass einige Skripte mit bash ausgeführt werden müssen –

Antwort

1

Die Prozesssubstitution wurde (oder wurde früher) mit Named Pipes implementiert. Sie könnten mkfifo verwenden, um direkt das gleiche Verhalten neu zu erstellen:

mkfifo pipe1 pipe2 
ls $file1 > pipe1 & 
ls $file2 > pipe2 & 
cmp pipe1 pipe2 
rm pipe1 pipe2 

Aber neben Performances, werden Sie nicht viel zu Kümmert reguläre Dateien gedacht verglichen gain ...

Verwandte Themen