Wenn Sie tun
cmd 1 | cmd 2 …dann und laufen mehr oder weniger gleichzeitig. Wenn Sie ein Multi-CPU-System haben, laufen sie möglicherweise gleichzeitig. In jedem Fall laufen sie jedoch gleichzeitig, wobei die genaue Planung durch Faktoren bestimmt wird, die zu komplex sind, um eine Vorhersage zu ermöglichen.
cmd1
cmd2
Dein ist und dein ist . Daher wird möglicherweise die Ausführung gestartet, bevor die Datei erstellt wird.cmd1
gzip -cN "$1" > "$1.gz"
cmd2
ls -l "$1.gz"
ls
gzip
"$1.gz"
ls
liest nicht von seiner Standardeingabe, daher macht das Pipeing keinen Sinn. Du willst es wahrscheinlich tun
gzip -cN "$ 1"> "$ 1.gz" && ls -l "$ 1.gz" | awk ''dh, führen Sie das aus
gzip
, und dann, wenn es erfolgreich ist, führen Sie das aus ls -l
.