Since your example is in .NET and you mention MASM, I assume that you work on Windows. On Windows, you can use either Win32 API to start a process, or the C RTL. Either way, you have to link to a static (.lib) library and call a function. In Win32 API, ShellExecute() is the easiest one to use (there's also CreateProcess(), but the calling sequence is a pain). In the RTL, there's _execl() and its relatives. Read up on consuming static libraries from assembly.
.NET code, like the Process.Start() stuff you've mentioned, does not translate into x86 assembly at all.
May I ask why this has to be done from assembly? "Assembly" and "shell scripts" rarely go together. Note: on Windows, shell scripts have a .bat or a .cmd extension. .sh, on the other hand, is characteristic of *nix or MacOS.