Bom dia pessoal,
Preciso executar alguns scripts em servidores e diretorios diversos
através do crontab. É possível obter o caminho onde o script é executado ?
A intenção é utilizar o local do script para gravar alguns logs.
Obrigado desde já.
Tente isso:
AONDE_ESTOU_RODANDO=$( pwd )
AONDE_ESTOU_ARMAZENADO=$(dirname $0)
2008/7/2 Anderson <[EMAIL PROTECTED]>:
> Bom dia pessoal,
>
> Preciso executar alguns scripts em servidores e diretorios diversos
> através do crontab. É possível obter o caminho onde o script é executado ?
> A intençã
$ dirname $0
Dentro do script.
$0 = caminho completo que o script foi chamado, ou seja:
/usr/local/bin/meuscript.sh == $0
dirname $0 == /usr/local/bin
Porem, se o script for cahmado assim:
cd /usr/local/bin
./meuscript.sh
Então o $0 vai ser "./meuscript.sh" e não vai resolver teu problema.
S
Na verdade descobri que será um script agendado que executará outros
scripts. Baseado nessas dicas vou testar essa linha
find /diretorio_base -name "*script.sh" -exec dirname {} \;
/diretorio_base/caminho_completo_do_script
Obrigado novamente
--- Em shell-script@yahoogrupos.com.br, "Flavio Ju
Gostaria de saber se existe uma forma de substituição, (pensei no
sed), em que nos arquivo de configuração gerados em uma máquina que
possui varias entradas com o /home/user1, por exemplo, eu pudesse
quando esse arquivo fosse rodar em outras máquinas pudesse antes
trocar esse user1 substituíndo-o
# echo user1 | sed "s/user1/$USER/" # aspas duplas
root
Sua concordancia ta um pouco confusa..
Mas acho que era isso que quis dizer.
--
Flávio do Carmo Júnior aka waKKu
2008/7/2 José Alberto <[EMAIL PROTECTED]>:
> Gostaria de saber se existe uma forma de substituição, (pensei no
> sed), em que
Não entendi bem o que você quer, mas tente
sed "s/$USER/texto_que_sera_colocado_no_lugar/"
Lembrando que $HOME contém o diretório home do usuário corrente. Só
tome cuidado porque como o conteúdo da variável contém barras, ele vai
quebrar o comando s do sed caso você use como eu indiquei acima.
N
Flávio,
desculpe a redação, mas você compreendeu. Obrigado
Em 02-07-2008 13:46, Flavio Junior escreveu:
>
> # echo user1 | sed "s/user1/$USER/" # aspas duplas
> root
>
> Sua concordancia ta um pouco confusa..
>
> Mas acho que era isso que quis dizer.
>
> --
>
> Flávio do Carmo Júnior aka waKKu
>
>
Desculpem reviver o thread, mas a solução só funcionou em testes (eu tinha
testado na minha máquina) já que o Unix do servidor não possui o mesmo sed
(esse não tem a opção r).
A solução por enquanto é a seguinte:
sed -e 's/XXX//g' Report.out | sed -e 's/Xyz//g' | sed -e 's/Xyzzzt//g' |
sed -e 's/
Lembre-se do que o Reinaldo (acho que foi ele, desculpe-me se nao foi) disse:
usar o -r OU escapar os parenteses
Troque ( por \( e ) por \) e não precisará do -r
--
Flavio do Carmo Junior aka waKKu
2008/7/2 Christian Silva <[EMAIL PROTECTED]>:
> Desculpem reviver o thread, mas a solução só fun
Falha minha não ter citado, mas essa alternativa não funcionou em meu
ambiente (SunOS 5.10 Last change: 07/23/98).
Em perl o suporte a extended regexp funcionou bem (tenho a 5.10), mas
gostaria de continuar com o shellscript.
2008/7/2 Flavio Junior <[EMAIL PROTECTED]>:
> Lembre-se do que o Rei
Boa tarde!!!
com faz para pegar um texto minisculo, converter para maiusculo e atribuir o
resultado a uma nova variavel
pesquisei e encontrei isso aqui:
echo $VAR_NAME | tr ['a-z'] ['A-Z']
mas nao consigo atribuir isso a uma variavel.. por exemplo
varnew=(echo $VAR_NAME | tr ['a-z'] ['A-Z'])
o
Y0
Usando o seu exemplo.. faltou o "$"
varnew=$(echo $VAR_NAME | tr ['a-z'] ['A-Z'])
ai funciona..
- Mensagem original
De: Felipe Regalgo <[EMAIL PROTECTED]>
Para: shell-script@yahoogrupos.com.br
Enviadas: Quarta-feira, 2 de Julho de 2008 15:46:26
Assunto: [shell-script] transformar p
legal funcionou..
mas tb funcionou usando crase
varnew=`echo $VAR | tr ['a-i'] ['A-I']`
tem diferença???
valeu!!!
2008/7/2 Welder Kopti <[EMAIL PROTECTED]>:
> Y0
>
> Usando o seu exemplo.. faltou o "$"
>
> varnew=$(echo $VAR_NAME | tr ['a-z'] ['A-Z'])
> ai funciona..
>
> - Men
A diferença é que usando $(...) tu pode aninhar vários comandos:
x="$(echo "O conteúdo é: $(tail $(filterFiles.sh))")"
Isso não é possível usando crase.
PSS
2008/7/2 Felipe Regalgo <[EMAIL PROTECTED]>:
> legal funcionou..
>
> mas tb funcionou usando crase
> varnew=`echo $VAR | tr ['a
Fala Paulo e Felipe,
Pode-se aninhar crases sim, veja só:
$ x=`echo "O conteúdo é: \`ls\`"`
$ echo $x
O conteúdo é: Antigos Apresentacoes Área de Trabalho arquivo
awk_avançado.odt Desktop Documentos DownLoads DownLoads(2) DownLoads(3)
Examples googleearth google-earth Imagens Julio ligacoes Model
16 matches
Mail list logo