On Wed, Jun 09, 2021 at 04:22:38PM +0800, Hongyi Zhao wrote: [...] > > The below is split into several strings (call-process takes a list > > of arguments [...] > Is this way more efficient than the original version? Probably yes -- it calls directly curl instead of invoking a shell. But efficiency is not very important here. The important thing is what you are trying to achieve. Calling a shell emulates more the environment you have when using a shell (e.g. PATH, locales, variable expansion, etc). Sometimes you want to achieve exactly that. Calling the subprocess directly via exec is simpler, easier to understand, but bypasses the services afforded by the shell. Sometimes this is exactly what you want. Cheers - t