#!/bin/bash
# test.sh
post() {
echo "post [$BASH_COMMAND] [$?]"
echo "== $RANDOM =="
}
set -o functrace
trap post debug
func() {
. check.sh
tryme |& tee out.txt
}
func
Вывод можно фильтровать по строкам, помеченным случайным образом. Я должен проверить это дальше, чтобы увидеть, насколько хорошо он работает с несколькими процессами, но, похоже, он отлично работает с короткоживущими командами. Обратите внимание, что код выхода отстает на одну команду, так как отладка, по-видимому, вызывается первой.
#!/bin/bash
# check.sh
tryme() {
echo "one"
echo "two"
mkdir -p hello
cd hello/
echo "three"
false
echo "four"
}
===
$ bash test.sh
post [func] [0]
== 22542 ==
post [func] [0]
== 10758 ==
post [. check.sh] [0]
== 9115 ==
post [tryme 2>&1] [0]
== 11979 ==
post [tee out.txt] [0]
== 17814 ==
post [tryme 2>&1] [0]
== 22838 ==
post [echo "one"] [0]
== 5251 ==
one
post [echo "two"] [0]
== 18036 ==
two
post [mkdir -p hello] [0]
== 4247 ==
post [cd hello/] [0]
== 21611 ==
post [echo "three"] [0]
== 24685 ==
three
post [false] [0]
== 8557 ==
post [echo "four"] [1]
== 7565 ==
four
./autogen.sh
./configure
-disable-shared
CFLAGS='-fPIC'
CXXFLAGS='-fPIC'
--host=aarch64-unknown-nto-qnx7.0.0 # or x86_64-pc-nto-qnx7.0.0
CC=aarch64-unknown-nto-qnx7.0.0-gcc
CXX=aarch64-unknown-nto-qnx7.0.0-g++
--prefix='path-to-install/protobuf'
--with-protoc='path-to-local-installed/protobuf/bin/protoc'
CPPFLAGS='-D_XOPEN_SOURCE=500'
make
make install