add readme
This commit is contained in:
parent
8d94ebeece
commit
f4a773e425
33
README.md
Normal file
33
README.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# `shq`
|
||||||
|
|
||||||
|
`sh` quoting for your `sh` scripts. Or for your rust stuff. Whichever.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
`shq` is mostly interesting for use when escaping unknown strings so here's
|
||||||
|
an example of that:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
trap "$(shq echo "your first arg was $1 and your random token was $RANDOM")" 2
|
||||||
|
```
|
||||||
|
|
||||||
|
This will echo your first arg safely as well as a random number
|
||||||
|
whenever you press Ctrl-C. Significantly, these will be the values at
|
||||||
|
the time the trap was created.
|
||||||
|
|
||||||
|
## How it works
|
||||||
|
|
||||||
|
In `sh`, a single quote (`'`) opens a string which may contain any character
|
||||||
|
other than another single quote. A single quote may be included in a double
|
||||||
|
quoted string. And finally, two strings may be concatenated by simply
|
||||||
|
shoving them together. Thus, we get `echo 'this string'"'"'s very cool'`
|
||||||
|
which produces `this string's very cool`. An alternate version which uses
|
||||||
|
`echo 'this string'\''s very cool'` is possible. I don't like `\`.
|
||||||
|
|
||||||
|
## Comparison to other tools
|
||||||
|
|
||||||
|
`coreutils`'s as well as possibly other implementations of the `printf` shell
|
||||||
|
scripting tool have a %q format specifier which does largely the same
|
||||||
|
thing as this tool. Some of these use backslashes which may be more or less
|
||||||
|
compatible with your particular use case than the reliance on single quote
|
||||||
|
strings.
|
Loading…
Reference in New Issue
Block a user