У меня есть Makefile, который преуспевает, где он должен не потому, что линия, как этот`cat <does_not_exist | perl` успешно
./preprocess.sh <PARTIAL_SOURCE | perl >FINAL_SOURCE
успешно, хотя PARTIAL_SOURCE
еще не существует.
Это не причуда preprocess.sh
, это, кажется, что-то делать с Баш/ш
$> cat <does_not_exist && echo ok || echo no
bash: does_not_exist: No such file or directory
no
$> cat <does_not_exist | perl && echo ok || echo no
bash: does_not_exist: No such file or directory
ok
Почему первый провал, но второй успех?
Что такое ваше требование? и чего вы намереваетесь достичь? – Inian
Требование «FINAL_SOURCE» должно быть записано тогда и только тогда, когда полная цепочка команд, которые его генерируют, преуспевает. – spraff
Ваше требование довольно расплывчато. 'Preprocess.sh' читает из' PARTIAL_SOURCE' и вы передаете вывод команды 'perl' в' FINAL_SOURCE' (не уверен файл или переменную) только в том случае, если предыдущая команда завершается успешно? – Inian