trap
позволяет вам указать произвольную команду (или последовательность команд), но вы должны передать эту команду как один аргумент. Например, это:
trap 'foo bar baz | bip && fred barney ; wilma' SIGINT
запустит это:
foo bar baz | bip && fred barney ; wilma
всякий раз, когда оболочка получает SIGINT. В вашем случае это звучит так, как вы хотите:
trap '<function> <arg_1> <arg_2>' SIGINT