Я получаю странное поведение при передаче вывода функции команде tee
. Первая проблема заключается в том, что я не могу выйти из программы при использовании команды exit
при вызове из функции, переданной в tee
. Например:
myfunction(){
# Some stuff here
exit 1
}
myfunction | tee -a $UPGRADE_LOG
Когда я запускаю приведенный выше код, программа не завершается и работает до завершения.
Другая проблема, с которой я столкнулся, заключается в том, что tee
, похоже, заставил некоторый код работать таким образом, что последовательный порядок отменяется. У меня такой вывод:
SHOWING SYSTEM-WIDE AND INSTATNCE MEMORY USAGE:
Are you sure you would like to back up the instance given current memory contraints? [y/n]: Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-root 15G 13G 1.5G 90% /
Log File Size: 24K Total Size to Package: 248K Available Space: 1.5G
Когда он должен работать как:
SHOWING SYSTEM-WIDE AND INSTATNCE MEMORY USAGE:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-root 15G 13G 1.5G 90% /
Log File Size: 24K Total Size to Package: 248K Available Space: 1.5G
Are you sure you would like to back up the instance given current memory contraints? [y/n]:
Когда tee
не используется, все работает правильно. Кажется, что проблемы связаны друг с другом. Есть идеи, почему это так и что мне с этим делать?