Є!
Знайшов.
Одне з застосувань - індикатор прогресу виконання команд:
# початок коду
#! /bin/bash
is_pipe_clean()
{
for ipc_index in ${PIPESTATUS
(( ipc_index )) && return 1
done
return 0
}
echo 'Extracting:'
echo -n ' [ '
tar -xjvf /usr/src/Packages/Misc/db-*.tar.bz2 | \
tee logs/db-extract.log | \
sed -n -e 's/^.*$/echo -n "#" 1>\&2/' \
-e '71~70 s/^.*$/echo -n -e " ]\n [ #" 1>\&2/' \
-e 'e' -
if is_pipe_clean ; then
echo -e ' ]\nSucceed.'
else
echo -e '* ]\nError!'
fi
# кінець коду
Цей метод, щоправда, використовує аж два GNU extensions...
Чому я не хочу додавати будь-які бінарні програми? Бо це скриптова бібліотека, і я хочу залишити її такою.
P.S. Слухайте, що за дивна поведінка |сode||/code|? Я вважав, що між ними текст ніяк не змінюється... А у мене всі пробіли на початку строки перейшли в... "\n"
. Чи це у мене links глючить?..