![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
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 |
| 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 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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. |
|
||||
|
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; }} '`
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/*}
Última edição por época; em 08/28/2008 02:56.. Motivo: Variável substituição observações |
|
||||
|
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. |
|
||||
|
Citação:
Portanto, você deve usar bastante o estilo $(...) se não pretender executar o script inalterado no AIX ou do SunOS / Solaris "sh. |
|
|||||
|
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.
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|