Ответ 1
Используйте "здесь документ":
cat > foo.conf << EOF
NameVirtualHost 127.0.0.1
# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>
EOF
Как я в оболочке script создаю файл с именем foo.conf и заставляю его содержать:
NameVirtualHost 127.0.0.1
# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>
Используйте "здесь документ":
cat > foo.conf << EOF
NameVirtualHost 127.0.0.1
# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>
EOF
Вы можете сделать это с помощью echo
:
echo 'NameVirtualHost 127.0.0.1
# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>' > foo.conf
Все, заключенные в одинарные кавычки, интерпретируются как литералы, поэтому вы просто записываете этот блок в файл с именем foo.conf
. Если он не существует, он будет создан. Если он существует, он будет перезаписан.
heredoc может быть самым простым способом:
cat <<END >foo.conf
NameVirtualHost 127.0.0.1
# Default
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>
END
Этот код лучше всего подходит для меня:
sudo dd of=foo.conf << EOF
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/localhost
</VirtualHost>
EOF
Это был единственный, который я мог использовать с sudo
из коробки!