2012-11-29 19 views

Odpowiedz

69

Użyj „tutaj dokument”:

cat > foo.conf << EOF 
NameVirtualHost 127.0.0.1 

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

co robi << nie? –

+2

@BrianBolton Oznacza to, że nastąpi "tutaj dokument". – ams

+0

@ams Czy można mieć zmienne, które zostaną zinterpretowane w dokumencie? –

11

można zrobić z echo:

echo 'NameVirtualHost 127.0.0.1 

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

Wszystko otoczone apostrofami są interpretowane jako literały, s o po prostu napisz ten blok do pliku o nazwie foo.conf. Jeśli nie istnieje, zostanie utworzony. Jeśli istnieje, zostanie nadpisany.

+3

Działa, ale jest ograniczona przez maksymalną długość wiersza poleceń. – ams

+3

Działa również tak długo, jak długo nie ma apostrofów w dokumencie. – mornfall

5

heredoc może być najprostszy sposób:

cat <<END >foo.conf 
NameVirtualHost 127.0.0.1 

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

Kod ten wyposażony najlepiej dla mnie:

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

To był tylko jeden mogę korzystać z sudo po wyjęciu z pudełka!

Powiązane problemy