![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| passar a variável de bash bash script de perl | arsidh | Programação Shell Script e | 10 | 06-04-2008 01:25 |
| Parse String a partir de uma Variável | racbern | Programação Shell Script e | 3 | 04-07-2008 01:04 |
| parse variável | mpang_ | Programação Shell Script e | 2 | 01-03-2007 07:31 |
| bash env variável contendo @ | Yogesh Sawant | Programação Shell Script e | 4 | 12-20-2006 06:51 |
| analisar uma variável string | methos | Programação Shell Script e | 3 | 10-18-2005 05:18 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Como você analisar uma variável em um script bash?
Eu tenho um script eu uso no meu servidor web (Apache2). Estou mudando para lighttpd e necessidade de fazer algumas mudanças.
Isto é o que eu uso no meu servidor Apache #! / bin / bash # Aceita 3 parâmetros: <Nome do domínio name> <nomedeutilizador> <XXXXXXXX> # Nome do domínio é, sem www (apenas domain.com) # Usuário seriam melhores em 6 .-10. chars longo # Só verifica se passado está presente e usa-lo para o MySQL # Senha. Caso não esteja presente - não criar mysql conta if [ "$ 3"! \u003d ""], então ---- Snip --- useradd-m $ 2 filename \u003d / etc/apache2/sites-available / $ 2.www echo "<VirtualHost 10.10.10.10>"> $ filename echo "ServerAdmin webmaster @ $ 1">> $ filename --- Snip mais alguns ----- Eu preciso agora analisar a primeira variável de adicionar alguns caracteres: Então, basicamente: utilizando example.com # Example.com # # $ HTTP [ "host"] \u003d ~ "(^ | \.) Exemplo \. Com $ ( server.document-root \u003d "/ home / exemplo / public_html" server.errorlog \u003d "/ var / log / lighttpd / error.log-exemplo" accesslog.filename \u003d "/ var / log / lighttpd / access.log-exemplo" server.error-manipulador-404 \u003d "/ e404-example.php" ) Deve tornar-se: echo "#">> $ filename echo "#% 1">> $ filename echo "#">> $ filename echo "$ HTTP [\" host \ "] \u003d ~ \" (^ | \.)<domínio>\.<tld>$ \ "(">> $ Filename Etc --- ---- Penso que a melhor forma seria a de analisar até que eu bater o período eo uso da primeira parte, como uma variável e, a última parte do outro. Espero que isto faz sentido. Qualquer ajuda será apreciada. Alan |
|
||||
|
Então, alguma coisa assim? Código:
#!/bin/bash
domain=${1%.*}
tld=${1#*.}
cat <<HERE
#
# $domain.$tld
#
\$HTTP["host"] =~ "(^|\.)$domain\.$tld\$" {
server.document-root = "/home/$domain/public_html"
server.errorlog = "/var/log/lighttpd/${domain}-error.log"
accesslog.filename = "/var/log/lighttpd/${domain}-access.log"
server.error-handler-404 = "/e404-$domain.php"
}
HERE
Exemplo corra: vnix $ / tmp / htt example.com # Example.com # # $ HTTP [ "host"] \u003d ~ "(^ | \.) Exemplo \. Com $ ( server.document-root \u003d "/ home / exemplo / public_html" server.errorlog \u003d "/ var / log / lighttpd / exampleerror.log" accesslog.filename \u003d "/ var / log / lighttpd / access.log-exemplo" server.error-manipulador-404 \u003d "/ e404-example.php" ) Eu espero que eu tenho todos os detalhes direita. Você não pode realmente "analisar" o muito variáveis, é possível realizar substituições simples string que tenho, mas basicamente é só $ 1 $ 2 $ 3, e se precisar de algo curioso, utilizar algumas externas utilitário. |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|