⇤ ← Revision 1 as of 2007-05-09 18:10:44
Size: 788
Comment: new question
|
Size: 792
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
== Why is $(...) preferred over `` (backticks)? == | == Why is $(...) preferred over `...` (backticks)? == |
Line 15: | Line 15: |
* Newbies who see {{{$()}}} don't normally press the wrong keys. On the other hand, newbie who see {{{`cmd`}}} often mangle it into {{{'cmd'}}} because they don't know what a backtick is. | * Newbies who see {{{$()}}} don't normally press the wrong keys. On the other hand, newbies who see {{{`cmd`}}} often mangle it into {{{'cmd'}}} because they don't know what a backtick is. |
Why is $(...) preferred over `...` (backticks)?
For several reasons:
- It makes nesting command substitutions easier. Compare:
x=$(grep $(dirname "$path") file) x=`grep \`dirname "$path"\` file`
- It's easier to read.
Newbies who see $() don't normally press the wrong keys. On the other hand, newbies who see `cmd` often mangle it into 'cmd' because they don't know what a backtick is.
Backslashes (\) inside backticks are handled in a non-obvious manner. (Example desired!) Inside $(), there are no such surprises.
The only time backticks are preferred is when writing code for the oldest Bourne shells, which do not know about $().