Question

Bash script with cat and $1

Posted October 23, 2021 120 views
Linux Commands

Hello,
I am writing a script which, among other things, generates Nginx configuration. Unfortunately, I ran into a problem. In Nginx config, I need to type $1. I use the following method for this:

cat > /etc/nginx/sites-available/website <<EOL
...
rewrite ^/api/?(.*)$ /web/api.php?url=$1 last;
...
EOL

This makes the output file look like this:

...
rewrite ^/api/?(.*)$ /web/api.php?url= last;
...

How do I make cat not interpret $1 as a parameter?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hello,

What you could do is just use a backtick to escape the dollar sign:

cat > /etc/nginx/sites-available/website <<EOL
...
rewrite ^/api/?(.*)$ /web/api.php?url=\$1 last;
...
EOL

Hope that this helps
Regards,
Bobby