comint-delimiter-argument-list is a variable defined in `comint.el'.
Its value is

List of characters to recognize as separate arguments in input.
Strings comprising a character in this list will separate the arguments
surrounding them, and also be regarded as arguments in their own right (unlike
whitespace). See `comint-arguments'.
Defaults to the empty list.

For shells, a good value is (?\| ?& ?< ?> ?\( ?\) ?;).

This is a good thing to set in mode hooks.