shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] como omitir o /bin/bash


From: Bruno Gunter Fricke
Subject: Re: [shell-script] como omitir o /bin/bash
Date: Thu, 07 Feb 2008 12:01:25 -0200

Um gatilho que eu costumo fazer é no início de um script dar um "whereis
programa" e salvar o nome dele em uma variável. Primeiro que resolve em
parte este problema e funciona em qualquer ambiente, não importando onde
eles foram instalados/alocados :-)

Em Qui, 2008-02-07 às 11:56 -0200, Otávio Fernandes escreveu:
> On Thu, 7 Feb 2008 11:31:14 -0200
> "Leonardo Neves" <address@hidden> wrote:
> 
> > Pessoal,
> > 
> > Meus scripts em ambiente solaris rodam da seguinte forma:
> > 
> > [root@oracle-03 ~]# ./teste.sh &
> > [2] 14761
> > [root@oracle-03 ~]# ps -ef | grep teste | grep -v grep
> > root 14761 8229 0 11:23:27 pts/3 0:00 /bin/bash ./teste.sh
> > 
> > 
> > Em ambientes Linux o comando em execução seria apenas ./teste.sh ao
> > invés de /bin/bash ./teste.sh
> > 
> > Apesar de não alterar em nada a execução do script, não consigo
> fazer
> > a monitoração de forma adequada via Nagios/NRPE. Alguém sabe como
> > arrumar isso sem a necessidade de usar compiladores (shc, gcc).
> > 
> > Atenciosamente,
> 
> Leonardo,
> 
> Isso ocorre porque o Linux te "engana" linkando o sh para bash
> (comprove
> com o seguinte comando $ ls -l /bin/sh). Bash eh apenas um tipo de
> shell, existindo muitos outros, com diferentes funcionalidades e
> habilidades, uns ate MUITO melhores do que o Bash, na minha opiniao.
> 
> Verifique se os seus scripts utilizam alguma funcionalidade especifica
> do bash, para isso vc pode fazer o seguinte (no solaris):
> 
> $ /bin/sh teste.sh
> $ echo $?
> 
> Caso o resultado seja positivo, ou seja, o script roda sem maiores
> problemas, troque a primeira linha de cada script para "#!/bin/sh" ao
> inves de "#!/bin/bash". Caso contrario, vc pode ir colando os trechos
> de
> bash para nos te ajudarmos a migrar para sh.
> 
> Outra alternativa, caso vc queria manter as funcionalidades do bash,
> eh
> utilizar o comando "env" ($ man env), no qual ele vai localizar o
> interpretador bash no $PATH, com o env a primeira linha
> ficaria assim: #!/usr/bin/env bash
> 
> Por ter esta variedade de possibilidades eu sempre implemento os meus
> shell scripts seguindo o padrao Sh, pois ele sempre vai ser aceito em
> outros sistemas unix-like.
> 
> um abraco,
> 
> -- 
> | --
> | Otávio Fernandes < otaviof | gmail | com >
> | FreeBSD 7.0-PRERELEASE && GNU/Linux User: 283.396
> | (( Especial Programação )) http://geekbr.podcastbrasil.com/ -- 0.15
> | --
> 
> 
> 
> 
>  


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]