In this case, you don't need to change working directory at all (as answered by Kusalananda). However, if you're dealing with commands that do need a particular working directory, then there are a couple of things to know that will make it easier for you.
cd sets the
OLDPWD variable, we can use that to return to the original directory, without having to know its name. Secondly, we probably want to return whether or not the command succeeded, so use
; rather than
cd "$workdir" && somecommand ; cd "$OLDPWD"
That's still unreliable if the first
cd fails; to be more robust, we really need
if cd "$workdir" ; then somecommand ; cd "$OLDPWD" ; fi
Even at this point, we're struggling if we need the exit status of
somecommand after this.
It's usually best to run the command in a subshell, and change only the subshell's working directory:
( cd "$workdir" && somecommand )
This last approach is what I normally use and recommend, unless you're doing something which isn't possible from a subshell, such as setting variables for subsequent commands.