how do you keep $ dollar sign untouched within a script you touch by ssh?

Posted on 2010-09-01
Last Modified: 2012-05-10
I have a script that needs altering via an ssh touch command.  Within this script is a $2 that needs to stay intact but the ssh command is thinking it's a variable and it disappears.  How do I keep this $ intact?  Here's my ssh command and code below:

You can see various $ within the script being edited.  The main ones like ${dir} are already good to go.  I'm mainly looking at lines 56-58 where it has    $2
rm /home/atest/www/.htaccess

touch /home/atest/public_html/"$dir".htaccess
echo "# $Id: .htaccess  1 2003/06/12 10:53:20 Michael Sasek$
# This is used with Apache WebServers
# For this to work, you must include the parameter 'Options' to
# the AllowOverride configuration
# Example:
# <Directory "/usr/local/apache/htdocs">
#   AllowOverride Options
# </Directory>
# 'All' with also work. (This configuration is in the
# apache/conf/httpd.conf file)

# The following makes adjustments to the SSL protocol for Internet
# Explorer browsers

<IfModule mod_setenvif.c>
  <IfDefine SSL>
    SetEnvIf User-Agent ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0

# If Search Engine Friendly URLs do not work, try enabling the
# following Apache configuration parameter
# AcceptPathInfo On

# Fix certain PHP values
# (commented out by default to prevent errors occuring on certain
# servers)
<IfModule mod_php5.c>
  php_value session.use_trans_sid 0

## SEO Url's .htaccess file
## If you want to use the Apache Mod-Rewrite method for SEO URL's
## Uncomment one of the two code blocks below, depending on where your store is installed:
## NOTE: This requires that you are on an apache web server with mod_rewrite enabled.

## If installed in a subfolder, uncomment the below block and change /folder/ to
## The directory where your shop is installed. For instance, if installed in the catalog directory
## Change it to /catalog/

RewriteEngine On
# Change "folder" to your catalog directory name
RewriteBase /${dir}
RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING}
RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING}

## If installed to the base home/root directory, uncomment the below code only:

## BOF change for dynamic pages stored in the database
RewriteRule index.html index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*).html$ information.php?page_alias=$1
## EOF change for dynamic pages stored in the database" > /home/atest/public_html/"$dir".htaccess

Open in new window

Question by:allwebnow
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 68

Accepted Solution

woolmilkporc earned 500 total points
ID: 33579705
RewriteRule ^(.*)-p-(.*).html\$ product_info.php?products_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-c-(.*).html\$ index.php?cPath=$2&%{QUERY_STRING}
RewriteRule ^(.*)-m-(.*).html\$ index.php?manufacturers_id=$2&%{QUERY_STRING}

which means: protect the concerned $ signs from being expanded by the shell using a backslash ( \ ) just in front of them.
Use this method to protect any character which needs it.



Author Comment

ID: 33579733
That was wonderful!  I knew it was something like that.  Just didn't know what the method character was.

Expert Comment

ID: 33579762
Either use single quotes, or a here-document construct, like this:

cat > /home/atest/public_html/"$dir".htaccess <<"_EOF"
# $Id: .htaccess  1 2003/06/12 10:53:20 Michael Sasek$
# This is used with Apache WebServers

See also

Featured Post

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Hello to you all, I hear of many people congratulate AWS (Amazon Web Services) on how easy it is to spin up and create new EC2 (Elastic Compute Cloud) instances, but then fail and struggle to connect to them using simple tools such as SSH (Secure…
Recently, an awarded photographer, Selina De Maeyer (, completed a photo shoot of a beautiful event ( in An…
Viewers will learn how to properly install and use Secure Shell (SSH) to work on projects or homework remotely. Download Secure Shell: Follow basic installation instructions: Open Secure Shell and use "Quick Connect" to enter credentials includi…
In a recent question ( here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Suggested Courses

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question