Выглядит это так:
# false | true
# echo $?
0
Разумеется, это совершенно не адекватное поведение и мало кому такой расклад будет полезен. Поэтому новые версии Bash могут вести себя иначе, возвращать первый не нулевой код возврата, возникший в pipe цепочки. То есть, если отказала первая команда - будет возвращен ее код возврата, если вторая - ее, если третья, последняя, то ее.
Выглядит это так:
# set -o pipefail
# false | true
# echo $?
1
Вот такая вот фича :)
Источник: http://bclary.com/blog/2006/07/20/pipefail-testing-pipeline-exit-codes/
No comments :
Post a Comment
Note: only a member of this blog may post a comment.