Chapter 5. Quoting
Quoting means just that, bracketing a string in quotes. This
has the effect of protecting special
characters in the string from reinterpretation
or expansion by the shell or shell script. (A character is
"special" if it has an interpretation other than its
literal meaning, such as the wild card character --
*.)
bash$ ls -l [Vv]*
-rw-rw-r-- 1 bozo bozo 324 Apr 2 15:05 VIEWDATA.BAT
-rw-rw-r-- 1 bozo bozo 507 May 4 14:25 vartrace.sh
-rw-rw-r-- 1 bozo bozo 539 Apr 14 17:11 viewdata.sh
bash$ ls -l '[Vv]*'
ls: [Vv]*: No such file or directory |
Certain programs and utilities reinterpret or expand
special characters in a quoted string. An important use of
quoting is protecting a command-line parameter from the shell,
but still letting the calling program expand it.
bash$ grep '[Ff]irst' *.txt
file1.txt:This is the first line of file1.txt.
file2.txt:This is the First line of file2.txt. |
Note that the unquoted grep [Ff]irst *.txt
works under the Bash shell.
Quoting can also suppress echo's
"appetite" for newlines.
bash$ echo $(ls -l)
total 8 -rw-rw-r-- 1 bozo bozo 130 Aug 21 12:57 t222.sh -rw-rw-r-- 1 bozo bozo 78 Aug 21 12:57 t71.sh
bash$ echo "$(ls -l)"
total 8
-rw-rw-r-- 1 bozo bozo 130 Aug 21 12:57 t222.sh
-rw-rw-r-- 1 bozo bozo 78 Aug 21 12:57 t71.sh |