bash pipestatus в команде с обратным каналом?

в bash, если я выполню пару команд, соединенных внутри обратных галочек, как я могу узнать состояние выхода первой команды?

т.е. в этом случае я пытаюсь получить «1». который я могу получить через PIPESTATUS [0], если я не использую обратные пометки, но который, кажется, не работает, когда я хочу сохранить вывод:

## PIPESTATUS[0] works to give me the exit status of 'false':
$ false | true;
$ echo $? ${PIPESTATUS[0]} ${PIPESTATUS[1]};
0 1 0

## doesn't work:
$ a=`false | true`;
$ echo $? ${PIPESTATUS[0]} ${PIPESTATUS[1]};
0 0

В более общем смысле, я пытаюсь выполнить: сохранить последнюю строку вывода какой-либо программы в переменную, но уметь определить, произошла ли ошибка программы:

$ myvar=` ./someprogram | tail -1 `;
$ if [ "what do i put here" ]; then echo "program failed!"; fi

В идеале я также хотел бы понять, что происходит, а не только каков ответ.

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос