Buckets:
| Name | Size | Uploaded | Xet hash |
|---|---|---|---|
| .github | 1 items | ||
| test | 7 items | ||
| .eslintrc | 493 Bytes xet | 21764262 | |
| .nycrc | 229 Bytes xet | 38739e3e | |
| LICENSE | 1.11 kB xet | b1a2f73b | |
| README.md | 4 kB xet | dfa50b36 | |
| index.js | 87 Bytes xet | e2c58e51 | |
| package.json | 1.84 kB xet | e677e0be | |
| parse.js | 5.19 kB xet | 7d081333 | |
| quote.js | 1.46 kB xet | f71bce93 | |
| security.md | 295 Bytes xet | 4ad6bcc2 |
shell-quote
Parse and quote shell commands.
example
quote
var quote = require('shell-quote/quote');
var s = quote([ 'a', 'b c d', '$f', '"g"' ]);
console.log(s);
output
a 'b c d' \$f '"g"'
parse
var parse = require('shell-quote/parse');
var xs = parse('a "b c" \\$def \'it\\\'s great\'');
console.dir(xs);
output
[ 'a', 'b c', '\\$def', 'it\'s great' ]
parse with an environment variable
var parse = require('shell-quote/parse');
var xs = parse('beep --boop="$PWD"', { PWD: '/home/robot' });
console.dir(xs);
output
[ 'beep', '--boop=/home/robot' ]
parse with custom escape character
var parse = require('shell-quote/parse');
var xs = parse('beep ^--boop="$PWD"', { PWD: '/home/robot' }, { escape: '^' });
console.dir(xs);
output
[ 'beep --boop=/home/robot' ]
parsing shell operators
var parse = require('shell-quote/parse');
var xs = parse('beep || boop > /byte');
console.dir(xs);
output:
[ 'beep', { op: '||' }, 'boop', { op: '>' }, '/byte' ]
parsing shell comment
var parse = require('shell-quote/parse');
var xs = parse('beep > boop # > kaboom');
console.dir(xs);
output:
[ 'beep', { op: '>' }, 'boop', { comment: '> kaboom' } ]
methods
var quote = require('shell-quote/quote');
var parse = require('shell-quote/parse');
quote(args)
Return a quoted string for the array args suitable for using in shell
commands.
Each entry of args may be a string, or one of the object shapes that
parse emits: { op } (where op is one of the control operators
||, &&, ;;, |&, <(, <<<, >>, >&, <&, &, ;, (,
), |, <, >), { op: 'glob', pattern }, or { comment }. Any
other object shape, an unrecognized op, or a pattern/comment
containing line terminators throws a TypeError.
parse(cmd, env={})
Return an array of arguments from the quoted string cmd.
Interpolate embedded bash-style $VARNAME and ${VARNAME} variables with
the env object which like bash will replace undefined variables with "".
env is usually an object but it can also be a function to perform lookups.
When env(key) returns a string, its result will be output just like env[key]
would. When env(key) returns an object, it will be inserted into the result
array like the operator objects.
When a bash operator is encountered, the element in the array with be an object
with an "op" key set to the operator string. For example:
'beep || boop > /byte'
parses as:
[ 'beep', { op: '||' }, 'boop', { op: '>' }, '/byte' ]
install
With npm do:
npm install shell-quote
license
MIT
- Total size
- 149 MB
- Files
- 6,599
- Last updated
- Jun 23
- Pre-warmed CDN
- US EU US EU
