Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Feb 2011 10:40:47 -0700 (MST)
From:      Warren Block <wblock@wonkity.com>
To:        questions@freebsd.org
Subject:   Backtick versus $()
Message-ID:  <alpine.BSF.2.00.1102201027170.56885@wonkity.com>

next in thread | raw e-mail | index | archive | help
$() apparently isn't quite the same as backticks, although sh(1) doesn't 
mention that, or I just missed it.  This script is just supposed to 
escape special characters* in a path/filename:

#!/bin/sh

DESTDIR="./"
COMPFILE=".cshrc"

PSTR=`echo "${DESTDIR}${COMPFILE}" | sed 's%\([?:.%\\]\)%\\\1%g'`
echo ${PSTR}

PSTR=$(echo "${DESTDIR}${COMPFILE}" | sed 's%\([?:.%\\]\)%\\\1%g')

% ./test.sh
\1/\1cshrc
\./\.cshrc

With backticks, the backreference \1 never seems to be replaced with the 
actual pattern, regardless of search pattern.  Tested on 8-stable and 
9-current.

*: That's special characters as less(1) -Ps sees them.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1102201027170.56885>