mirror of
https://github.com/opnsense/src.git
synced 2026-04-29 10:11:09 -04:00
A string between $' and ' may contain backslash escape sequences similar to the ones in a C string constant (except that a single-quote must be escaped and a double-quote need not be). Details are in the sh(1) man page. This construct is useful to include unprintable characters, tabs and newlines in strings; while this can be done with a command substitution containing a printf command, that needs ugly workarounds if the result is to end with a newline as command substitution removes all trailing newlines. The construct may also be useful in future to describe unprintable characters without needing to write those characters themselves in 'set -x', 'export -p' and the like. The implementation attempts to comply to the proposal for the next issue of the POSIX specification. Because this construct is not in POSIX.1-2008, using it in scripts intended to be portable is unwise. Matching the minimal locale support in the rest of sh, the \u and \U sequences are currently not useful. Exp-run done by: pav (with some other sh(1) changes)
8 lines
246 B
Text
8 lines
246 B
Text
# $FreeBSD$
|
|
|
|
# POSIX and C99 say D800-DFFF are undefined in a universal character name.
|
|
# We reject this but many other shells expand to something that looks like
|
|
# CESU-8.
|
|
|
|
v=$( (eval ": \$'\uD800'") 2>&1 >/dev/null)
|
|
[ $? -ne 0 ] && [ -n "$v" ]
|