Trap function by passing arguments? Trap function by passing arguments? bash bash

Trap function by passing arguments?


trap lets you specify an arbitrary command (or sequence of commands), but you have to pass that command as a single argument. For example, this:

trap 'foo bar baz | bip && fred barney ; wilma' SIGINT

will run this:

foo bar baz | bip && fred barney ; wilma

whenever the shell receives SIGINT. In your case, it sounds like you want:

trap '<function> <arg_1> <arg_2>' SIGINT


Maybe I'm misunderstanding you, but ... this is legal:

trap "cp /etc/passwd $HOME/p" SIGINTtrap 'cp /etc/passwd /tmp/p; echo wooo hoo' SIGINT


I'm not sure I understand correctly what you mean, but if you want to make a signal handler call a function and pass it parameters, trap "function arg1 arg2" SIGNAL should work. For example trap "ls -lh /" INT will cause Ctrl+C in your shell to result in ls -lh / (program with 2 args) being called.