You only have a short section to worry about, From mixer or taps to head, disconnect it all, put it all in a mild bleach solution, make sure that the pipe fills, Hold one end under while you slowly lower the rest into it, until it comes out the end. Leave to soak for a time, overnight even. Should do the job.
If yours is used on a daily basis, something else causing the smell, Maybe the bacteria has got into the lining of the pipe. The pipe is made up in layers, depends on quality, Some have a inner tube to carry the water, then the metal sheath, sometimes with an outer plastic coating. If bacteria is between the inner pipe and the metal sheath, you are not going to see it, just smell it. Again bleach should do it, But you might want to consider replacing the shower pipe, Not expensive. No other place to cause the problem, certainly not going to before the mixer/taps etc, as that would give you bad water, which would of made you ill. So soak in bleach solution, to clean it, BUT might come back, Or replace pipe.
SD, November 2012