Shift signal in frequency domain I want to shift the signal in frequency domain without going back to the time domain. 

Is it enough to shift the samples of the spectrum only? How?
If you merely want to shift spectral samples up in frequency, the process is fairly simple.  Let's say your DFT comprises the eight complex-valued samples X[0], X[1], X[2], X[3], X[4], X[5], X[6], X[7] and you want to shift them upward in frequency by two samples. The new shifted Y[m] spectral samples would be: 

Y[0] = X[6]

Y[1] = X[7]

Y[2] = X[0]

Y[3] = X[1]

Y[4] = X[2]

Y[5] = X[3]

Y[6] = X[4]

Y[7] = X[5]

You'll notice that the shifting could be described as a "circular shift" because of the sample wrap-around behavior. If you want to shift your original X[m] sequence downward in frequency by three samples. The new shifted Y[m] spectral samples would be: 

Y[0] = X[3]

Y[1] = X[4]

Y[2] = X[5]

Y[3] = X[6]

Y[4] = X[7]

Y[5] = X[0]

Y[6] = X[1]

Y[7] = X[2]