#
begins a comment in Unix shells, much like //
in C.
This means that when the shell passes the arguments to the progam, it ignores everything following the #. Escaping it with a backslash or quotes will mean it is treated like the other parameters and the program should work as expected.
2 4 \# 5 6
or
2 4 '#' 5 6
or
2 4 "#" 5 6
Note that the #
is a comment character only at the start of a word, so this should also work:
2 4#5 6