mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Added proposed printf %q
38
SC2039.md
38
SC2039.md
@@ -107,4 +107,40 @@ printf '%s' "$g" | grep aaa # since we want to avoid `echo`
|
||||
|
||||
### echo flags
|
||||
|
||||
See koalaman/shellcheck#461.
|
||||
See https://unix.stackexchange.com/tags/echo.
|
||||
|
||||
### `${var/pat/replacement}`
|
||||
|
||||
Bash:
|
||||
|
||||
```Bash
|
||||
echo "${TERM/%-256*}"
|
||||
```
|
||||
|
||||
POSIX:
|
||||
|
||||
```sh
|
||||
echo "$TERM" | sed -e 's/-256.*$//g'
|
||||
```
|
||||
|
||||
### `printf %q`
|
||||
|
||||
Bash:
|
||||
|
||||
```Bash
|
||||
printf '%q ' "$@"
|
||||
```
|
||||
|
||||
POSIX:
|
||||
|
||||
```sh
|
||||
# TODO: possibly interpret it back to printf escapes for hard-to-copy chars like \t
|
||||
reuse_quote()(
|
||||
for i; do echo -n \'; echo -n "$i" | sed -e "s/'/'\\\\''/g"; echo -n "' "; done
|
||||
)
|
||||
reuse_quote "$@"
|
||||
```
|
||||
|
||||
## Exception
|
||||
|
||||
Depends on what your expected POSIX shell providers would use.
|
Reference in New Issue
Block a user