Reputation: 1212
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
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
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
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
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