Возьмите этот script
#!/bin/sh
fd ()
{
  echo Hello world
  exit
}
trap fd EXIT INT
for g in {1..5}
do
  echo foo
  sleep 1
done
Я бы хотел, чтобы fd срабатывал один раз, либо из Control-C, либо если script завершается нормально. Однако, если вы нажмете Control-C, он будет работать дважды. Как я могу это исправить?