This is a
playground to test code. It runs a full
Node.js environment and already has all of
npm’s 400,000 packages pre-installed, including
spawn-default-shell with all
npm packages installed. Try it out:
This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.
Spawn shell command with platform default shell
shell: true option but a bit more
convenient and customizable. You can just pass the command as a string,
and it will be executed in the platform default shell. Used in concurrently.
// If we are in Linux / Mac, this will work const defaultShell = require('spawn-default-shell'); const child = defaultShell.spawn('cat src/index.js | grep function');
You can always override the shell path by defining these two environment variables:
SHELL_EXECUTE_FLAGS=-l -cWarning: execute flag must be the last flag.
sh variants will be called with
-l flag (--login). It invokes the shell
as a non-interactive login shell. In bash it means:
When bash is invoked as an interactive login shell, or as a non-inter- active shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
When a login shell exits, bash reads and executes commands from the file ~/.bash_logout, if it exists.
npm install spawn-default-shell --save
Spawns a new process of the platform default shell using the given command.
For all options, see child_process documentation.