Difference between revisions of "Quoting"

From Linux Shell Scripting Tutorial - A Beginner's handbook
Jump to navigation Jump to search
Line 28: Line 28:
 
<source lang="bash">FILE="/etc/resolv.conf"
 
<source lang="bash">FILE="/etc/resolv.conf"
 
echo "File is \"$FILE\" "</source>
 
echo "File is \"$FILE\" "</source>
 +
Sample Outputs:
 +
<pre>File is "/etc/resolv.conf"</pre>
 
The following will remove the special meaning of the dollar ( $ ) sign:
 
The following will remove the special meaning of the dollar ( $ ) sign:
 
<source lang="bash">FILE="/etc/resolv.conf"
 
<source lang="bash">FILE="/etc/resolv.conf"
 
echo "File is \$FILE "</source>
 
echo "File is \$FILE "</source>
 
+
Sample Outputs:
 +
<pre>File is $FILE </pre>
  
 
[[Category:Variables and Quoting]]
 
[[Category:Variables and Quoting]]

Revision as of 14:20, 12 September 2009

Your bash shell understand special characters with special meanings. For example, $var is used to display the variable value. You can enable or disable the meaning of a special character by enclosing them into a single or double quotes. This is also useful to suppress warnings and error messages while writing the shell scripts.

Quoting

There are three types of quotes

Quote type Name Meaning Example
" Double Quotes The double quote ( "quote" ) protects everything enclosed between two double quote marks except $, ', " and \.
Use the double quotes when you want variables and command substitution.

echo "$SHELL"
echo "Today is $(date)"

 
' Single quotes The single quote ( 'quote' ) protects everything enclosed between two single quote marks.
It is used to turn off the special meaning of all characters.

echo '$SHELL'
echo 'Today is $(date)'

 
` Back quote Use back quote ( `command-name` ) to execute command and replace a command with its output
within the same command-line. However, $(command-name) is encouraged syntax for substitution as it is recommended
by POSIX standard and it improves script readability.

echo "Today is `date`"
echo "Today is $(date)"

 

Backslash

The backslash ( \ ) alters the special meaning of the ' and " i.e. it will escape or cancel the special meaning of the next character. The following will display filename in double quote:

FILE="/etc/resolv.conf"
echo "File is \"$FILE\" "

Sample Outputs:

File is "/etc/resolv.conf"

The following will remove the special meaning of the dollar ( $ ) sign:

FILE="/etc/resolv.conf"
echo "File is \$FILE "

Sample Outputs:

File is $FILE