According to the help for shell:cat, the - is supposed to activate cat for STDIN (just as the Linux cat command does). However, the hyphen is being used as an argument parsing flag and hence isn't working:
karaf@root> cat --help
Displays the content of a file or URL.
shell:cat [options] paths or urls
paths or urls
A list of file paths or urls to display separated by whitespaces
(use - for STDIN)
--help Display this help message
-n The number the output lines, starting at 1.
karaf@root> shell:cat -
Error executing command shell:cat undefined option -
It may be sufficient to remove the STDIN option from the cat command, I'm not sure how useful STDIN is within an OSGi command-line prompt anyway.