#Perl 5, 67 bytes

64 bytes plus three for the flags: `perl -lpF script.pl`

    $"='';("@F@F"=~/#(\d+)/);{unshift@F,pop@F;++$i!=$1&&redo}$_="@F"

I stole the `concatenate(input,input)` trick from other answers here.

Explanation:

* `-lpF` reads the input, removes the trailing newline, splits up the remainder into characters, and puts that split into the array `@F`.
* `$"=''` makes sure that when we stringify an array it has no spaces in it.
* `"@F@F"=~/#(\d+)/`, in the list context supplied by `(...)`, is the match of all the digits immediately following a `#` in the stringified `@F` (which is the input string) concatenated with itself. This will be the number of times we want to rotate the array. It's assigned to `$1`.
* Now comes a loop: We increment `$i` (which starts at `0`) and test against `$1` (the number of times to rotate); if we haven't reached `$1`yet, we `redo` the loop. What does the loop do? Simple: it rotates the array (`pop`s the last element and `unshift`s it onto the beginning).
* After the loop exits, we assign the stringified shifted loop to `$_` so that `-p` prints it.