UKB
UKB

Reputation: 1212

Create file with contents from shell script

How do I, in a shell script, create a file called foo.conf and make it contain:

NameVirtualHost 127.0.0.1

# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>

Upvotes: 100

Views: 93203

Answers (4)

Sergej
Sergej

Reputation: 1092

This code fitted best for me:

sudo dd of=foo.conf << EOF
<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /var/www/localhost
</VirtualHost>
EOF

It was the only one I could use with sudo out of the box!

Upvotes: 7

sampson-chen
sampson-chen

Reputation: 47267

You can do that with echo:

echo 'NameVirtualHost 127.0.0.1

# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>' > foo.conf

Everything enclosed by single quotes are interpreted as literals, so you just write that block into a file called foo.conf. If it doesn't exist, it will be created. If it does exist, it will be overwritten.

Upvotes: 36

nullrevolution
nullrevolution

Reputation: 4127

a heredoc might be the simplest way:

cat <<END >foo.conf
NameVirtualHost 127.0.0.1

# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>
END

Upvotes: 11

ams
ams

Reputation: 25569

Use a "here document":

cat > foo.conf << EOF
NameVirtualHost 127.0.0.1

# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>
EOF

Upvotes: 166

Related Questions