These @commands@ are not given directly by the user? What's the point of any of this then? Why don't you construct the string wherever you need it or call built in aliases instead of wrapping them like this?