The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



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
Bash Shell para sh Shell em um script saurabh84g Programação Shell Script e 8 08-29-2008 05:51
diferentes shell csh bash ajp7701 Programação Shell Script e 1 04-18-2008 04:19
c shell bash, em vez de ajp7701 Programação Shell Script e 0 03-18-2008 04:15
Bash Shell BG_JrAdmin Linux 1 08-07-2006 01:56
Shell Bash ... VijayHegde Programação Shell Script e 2 06-06-2006 08:09

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 08-28-2008
RockyC123 RockyC123 is offline
Usuário
  
 

Join Date: Feb 2008
Posts: 6
comandos bash encanamentos

Olá todos,

Eu sou novo para bash. Estou tentando obter uma sub-string de uma variável em um script. Embora tentando fazer que eu recebo o seguinte erro:

-------------------------------------------------- ----------------------
OHOME: / aaa / bbb / produto / eee
. / t.sh: linha 6: / aaa / bbb / produto / eee: Nenhum tal lima ou diretório
Oracle Base:
-------------------------------------------------- ----------------------

Aqui está o código:

-------------------------------------------------- ----------------------
#! / bin / sh

OHOME \u003d / aaa / bbb / produto / eee
echo "OHOME:" $ OHOME

O_BASE \u003d echo $ OHOME | awk-F "/" '(for (i \u003d 2; i <\u003d NF; i + +) (if ($ i \u003d\u003d "produto") (exit;) a \u003d um "/" $ i ;)) '

echo "Oracle Base:" $ O_BASE
-------------------------------------------------- ----------------------

Estou muito surpreendido. Uma vez que não parece gostar de "echo $ OHOME" Tentei várias coisas como juntando entre parênteses, único / aspas, etc Eu continuo a obter este erro. Eu posso não parecem encontrar a sintaxe do livro ou do google

Parece muito simples, mas estou preso a este por horas. Talvez aqui peritos pode guiar-me.

Aqui está a nossa versão Linux:

Linux 2.6.9 <name>-67.0.20.ELsmp # 1 SMP Mon Jun 18 12:40:47 EDT 2008 i686 i686 i386 GNU/Linux

Rocky.
  #2 (permalink)  
Old 08-28-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
Seu comando significa OHOME echo \u003d e enquanto que a atribuição é no lugar, execute o comando $ OHOME o que evidentemente não é um comando válido.

Para capturar a saída de um comando, ponha-o no backticks (ASCII 96, não regular reto aspas):

Código:
O_BASE=`echo $OHOME | awk -F"/" '{for(i=2;i<=NF;i++) {if($i=="product"){exit;} a=a"/"$i; }} '`
$ OHOME deve ser devidamente em aspas duplas, e saber que agora você vai ter menos surpresas posterior (embora neste caso não é realmente fazer a diferença).

Se o seu shell permite $(...) ao invés de backticks `...` que é, porventura, mais legível, embora nominalmente menos portáteis para legado Bourne shell.

Seu awk script não parece fazer nada com o a parte, se você quer dizer para capturá-lo, você precisa imprimi-lo.

Para tira fora tudo após a primeira ocorrência do /produto / você pode usar o shell do mecanismo de substituição variável:

Código:
O_BASE=${OHOME%/product/*}
(O script awk salta o primeiro componente /aaa, Que é intencional? Você pode remover uma outra variável que, com substituição, O_BASE \u003d $ (O_BASE # / aaa))

Última edição por época; em 08/28/2008 02:56.. Motivo: Variável substituição observações
  #3 (permalink)  
Old 08-28-2008
RockyC123 RockyC123 is offline
Usuário
  
 

Join Date: Feb 2008
Posts: 6
Ahhh .. Muito obrigado. Esqueci a `s quando eu copiado ao longo da HP. Funciona tanto com `` e $(..)

A sua segunda sugestão "O_BASE \u003d $ (OHOME% / produto / *)" funciona perfeitamente, sem todos os extras. Eu não posso compreender que um - necessidade de obter um bom livro para aprender a sintaxe.

Na terceira parte, a forma como este funciona awk é, assume a parte antes da primeira barra como um campo: "/ aaa / bbb / produto / eee". Neste um, AAA é o segundo campo por awk bbb e é o terceiro campo.

Problema resolvido. Muito obrigado pela sua ajuda.
  #4 (permalink)  
Old 08-28-2008
buffoonix buffoonix is offline
Usuário
  
 

Join Date: Mar 2006
Lugares: 145
Citação:
Esqueci a `s quando eu copiado ao longo da HP. Funciona tanto com `` e $(..)
Sim, porque o HP-UX sh é um Posix reservatório. Ver sh-homemPOSIX para saber sobre as suas capacidades.
Portanto, você deve usar bastante o estilo $(...) se não pretender executar o script
inalterado no AIX ou do SunOS / Solaris "sh.
  #5 (permalink)  
Old 08-28-2008
wempy's Avatar
wempy wempy is offline
Usuário
  
 

Join Date: Jun 2006
Localização: Harpenden, Reino Unido
Lugares: 208
este Referência Cartões apêndice da Advanced Bash Scripting Guide (http://tldp.org/LDP/abs/html/) Tem sido uma benção para mim, porque eu nunca poderei lembro a sintaxe correta para a seqüência corte.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 01:56.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0