Spawn shell command with platform default shell
npm install spawn-default-shell> Spawn shell command with platform default shell
  master branch status

Like child_process.spawn with 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.
``js`
// 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');
Platform | Command
---------|----------
Windows | cmd.exe /c "...". If COMSPEC env variable is defined, it is used as shell path./bin/bash -l -c "..."
Mac | /bin/sh -l -c "..."
Linux |
You can always override the shell path by defining these two environment variables:
* SHELL=/bin/zshSHELL_EXECUTE_FLAGS=-l -c
* Warning: execute flag must be the last flag.
All 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.
`bash``
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.
MIT