# spawn-default-shell

> Spawn shell command with platform default shell

Latest version **2.0.0** (published 2016-10-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install spawn-default-shell
pnpm add spawn-default-shell
yarn add spawn-default-shell
bun add spawn-default-shell
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2016-10-01 |
| First published | 2016-09-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Kimmo Brunfeldt |
| Maintainers | kimmobrunfeldt |
| Keywords | shell, exec, bash, sh, command, cross-platform, windows, linux, mac |

## Links

- npm: https://www.npmjs.com/package/spawn-default-shell
- Repository: https://github.com/kimmobrunfeldt/spawn-default-shell
- Homepage: https://github.com/kimmobrunfeldt/spawn-default-shell#readme
- Issues: https://github.com/kimmobrunfeldt/spawn-default-shell/issues
- npm.io page: https://npm.io/package/spawn-default-shell

## Alternatives

- [@salesforce/cli](https://npm.io/package/@salesforce/cli.md) — 389.7K weekly downloads
- [@mintlify/cli](https://npm.io/package/@mintlify/cli.md) — 208.9K weekly downloads
- [@grafana/e2e-selectors](https://npm.io/package/@grafana/e2e-selectors.md) — 128.7K weekly downloads
- [mintlify](https://npm.io/package/mintlify.md) — 112.0K weekly downloads
- [@intlayer/cli](https://npm.io/package/@intlayer/cli.md) — 22.8K weekly downloads

## Recent versions

- 2.0.0 (latest) — 2016-10-01
- 1.1.0 — 2016-09-30
- 1.0.0 — 2016-09-18

## README

# spawn-default-shell

> Spawn shell command with platform default shell

[![Build Status](https://travis-ci.org/kimmobrunfeldt/spawn-default-shell.svg?branch=master)](https://travis-ci.org/kimmobrunfeldt/spawn-default-shell) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/kimmobrunfeldt/spawn-default-shell?branch=master&svg=true)](https://ci.appveyor.com/project/kimmobrunfeldt/spawn-default-shell) *master branch status*

[![NPM Badge](https://nodei.co/npm/spawn-default-shell.png?downloads=true)](https://www.npmjs.com/package/spawn-default-shell)

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](https://github.com/kimmobrunfeldt/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.
Mac      | `/bin/bash -l -c "..."`
Linux    | `/bin/sh -l -c "..."`

You can always override the shell path by defining these two environment variables:

* `SHELL=/bin/zsh`
* `SHELL_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.

## Install

```bash
npm install spawn-default-shell --save
```

## API

### .spawn(command, [opts])

Spawns a new process of the platform default shell using the given command.

For all options, see [child_process](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options)
documentation.

## License

MIT

---
_Source: https://npm.io/package/spawn-default-shell · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
