trap echo делает печать не записывать в консоль при записи в файл

Когда я заканчиваю «CTRL + C», следующий скрипт

#!/bin/bash function waa(){ for i in {1..10} do echo "start.sh: sleeping $i" sleep 1s done } trap "echo 'GAGA'" TERM waa >> log.txt 

ловушка echo «GAGA» переходит в log.txt? Почему такое поведение? Очень неинтуитивно?

Благодаря!

One Solution collect form web for “trap echo делает печать не записывать в консоль при записи в файл”

Вы перенаправили стандартный вывод waa в log.txt и вызвали trap пока скрипт выполнял waa . echo выполняется в этом контексте.

Если вы хотите, чтобы эхо-сообщение было отправлено на консоль , вы можете попробовать перенаправить это стандартную ошибку, например,

 trap "echo 'GAGA' >&2 " TERM 

(если вы не перенаправили стандартную ошибку при запуске скрипта, это должно помочь).

  • В командной строке я могу перенаправить вывод в файл WITHOUT>, >> или | операторы?
  • Заполнение вкладки bash не работает в & & redirection
  • Необходимо перенаправить ввод из файла, а также из tty
  • Что означает выражение $ (<"dir / file") в bash?
  • Записывать вывод `time` в файл, зачем нужны скобки?
  • Почему этот сценарий не работает?
  • Получение stdin из именованного канала
  • перенаправление входного выхода в bash
  • Не ждите, пока не вернется перенаправление Shell
  • Стандартные дескрипторы файла ввода-вывода
  • Восстановление файла, который перезаписывается cat>
  • Linux и Unix - лучшая ОС в мире.