내 컴퓨터에 자동으로 가상 호스트를 생성하려고 합니다. 이것은 bash 스크립팅에 대한 학습 경험일 뿐입니다. 저는 현재 초보자입니다. awk, sed에 대해 더 자세히 알아보려고 합니다.
어쨌든, 여기 내 conf 파일이 있습니다. 명령줄에서 찾고 바꾸는 가장 효율적인 방법은 무엇입니까? 결국 일부 양식을 {DOMAIN} 및 {PATH}와 같은 태그로 대체하겠습니다.
NameVirtualHost commerce.l:*
<Directory "/home/chris/workspace/dev.commerce/html">
Options Indexes Includes execCGI
AllowOverride All
Order Allow,Deny
Allow From All
</Directory>
<VirtualHost commerce.l>
DocumentRoot /home/chris/workspace/dev.commerce/html
ServerName commerce.l
ErrorLog logs/commerce.error
<IfModule mod_rewrite.c>
<Directory "/home/chris/workspace/dev.commerce/html">
RewriteEngine on
# needed by Drupal 7 for "clean URLs"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
</IfModule>
</VirtualHost>
추신 : 저는 Ubuntu 11.04 natty를 사용하고 있습니다
답변1
이건 직업인 것 같아여기 문서: 스크립트에 템플릿을 포함하고 변수를 바꾸거나 쉘 명령의 출력을 바꾸려고 $variable_name
할 때 사용합니다.$(shell-command)
여기서 문서는 태그 다음 줄 ( 어떤 단어로도 대체 <<EOF
가능 )로 시작하고 해당 태그를 완전히 포함하는 줄 (들여쓰기는 허용되지 않음)로 끝납니다. 템플릿 내에서 큰따옴표 안의 문자와 동일한 문자는 특별합니다( 보호해야 하는 백틱에 유의하세요 ).EOF
EOF
"$`\
\`
DOMAIN=commerce.l
PATH=/home/chris/workspace/dev.commerce/html
cat >>/etc/apache/sites-available/$DOMAIN
NameVirtualHost $DOMAIN:*
<Directory "$PATH">
…
</VirtualHost>
EOF