Can anyone explain what is the difference between
echo $"Starting $CMD"
and
echo "String $CMD"
They seem to look the same.
See Question&Answers more detail:osCan anyone explain what is the difference between
echo $"Starting $CMD"
and
echo "String $CMD"
They seem to look the same.
See Question&Answers more detail:osLook up the QUOTING
section of the bash
man page:
Words of the form
$'string'
are treated specially. The word expands to string, with backslash- escaped characters replaced as specified by the ANSI C standard. Backslash escape sequences, if present, are decoded as follows:
- a alert (bell)
- backspace
- e an escape character
- f form feed
- new line
- carriage return
- horizontal tab
- v vertical tab
- backslash
- ' single quote
- nn the eight-bit character whose value is the octal value nnn (one to three digits)
- xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
- cx a control-x character
The expanded result is single-quoted, as if the dollar sign had not been present.
And note the follow description double quoted strings preceded by $
($"string"
):
A double-quoted string preceded by a dollar sign ($) will cause the string to be translated according to the current locale. If the current locale is C or POSIX, the dollar sign is ignored. If the string is translated and replaced, the replacement is double-quoted.