[shell-script] Re: Usuário Iniciante
Supondo que os == não fazem parte da saida do grep, eu coloquei o resto no arquivo f so para teste, fazendo o preenchimento das variáveis assim: [EMAIL PROTECTED]/dir$ n=0;while read z;do n=$[$n+1];z=${z#* };eval VAR$n=${z%% *};\ done
[shell-script] Re: Usuário Iniciante
Complementando mensagem anterior, pois não vi o que você disse, mas a falha foi minha. Marcando as opções para fonte de tamanho fixo e sem quebra de linha, no site do grupo, cheguei ao link: http://br.groups.yahoo.com/group/shell-script/message/22215?unwrap=1&var=0&l=1 Com isso vi exatamente seu código, sendo que no meu email multiplos espaços sumiram. Para você eliminar multiplos espaços pode usar o tr -s ' ' de uma das seguintes formas: seu_grep | tr -s ' ' # isso afetará seu arquivo, mas poderá usar o cut como queria < <(cat seu_arquivo|tr -s ' ') # la naquele while que citei, ou onde quiser z=`echo $z` # apenas acrescentando isto como 1.a linha dentro do while Resumindo, acho que o que você precisava para seguir a sua linha original é so o tal do tr -s ' '. Caso seu arquivo seja só para obter as variáveis citadas, sugiro que siga o exemplo do script para evitar tarefas desnecessárias de escrita em disco. Espero que a resposta agora seja útil.
Re: [shell-script] Saída diferente após redirecionamento
Provavelmente ele envia conteúdo para as duas saídas. Experimente a opção abaixo para verificar o que vai para cada uma: dpkg -l >teste1 2>teste2 On 4/2/07, Thomaz de Oliveira dos Reis <[EMAIL PROTECTED]> wrote: > Ainda não consegui resolver essa pessoal..ninguém tem uma idéia?
Re: [shell-script] Editar HTML com SED
Não sei se captei seu objetivo. Não vou falar em sed, matrizes ou tags específicas. Tendo agora algo mais direto, te passo essa linha de comando. Ela e sua saida poderão te dar alguma idéia para uma "nova abordagem". wget 2>/dev/null -O - http://g1.globo.com/Noticias/Tecnologia/0,,6174,00.html|tr '\t' ' '|tr -d '\n'| tr -s ' '|tr '<' '\n'|grep -A 1 '^a href="javascript:abrirMateria' Não acredito em soluções milagrosas definitivas. Basta a fonte alterar estruturalmente sua página e você terá de rever seu código de filtragem, e cada fonte é um caso, não existe mágica. Desculpe, se o colocado nada tiver a ver com sua questão. On 4/3/07, Alain M. <[EMAIL PROTECTED]> wrote: > Vou tentar uma nova abordagem para o meu problema: Eu preciso fazer um > arquivo de configuração com estas informações (por exemplo) > > # páginas a carregar >http://g1.globo.com/Noticias/Ciencia/0,,5603,00.html >http://g1.globo.com/Noticias/Cinema/0,,7086,00.html >http://g1.globo.com/Noticias/Tecnologia/0,,6174,00.html > # tags a remover com 3 campos: tag, chave de reentrancia e final >'' '' >'' '' >']*id="impressaoBottom">' '' >'' '' '' > # algumas variáveis diversas >DIAS=7 > > A idéia inicial era definir umas variáveis em um arquivo de include. > Alguém pode me dar uma idéia de como fazer sem ficar muito confuso? Não > gostaria de ter que criar um script de parsing complexo para isso.
Re: [shell-script] Editar HTML com SED
Considerando que minha bola não foi muito fora, me atrevo a dizer que talvez haja um lugar melhor para você pegar a informação desejada. Normalmente páginas de notícias têm links para news feeder correspondente, identificados como rss, xml, etc. Embora haja algumas diferenças sutis entre formatos, um único script poderá tratar todos. Bastará você passar um único parâmetro, o endereço do feeder. Além disso, por ser algo padronizado, não depende da fonte. Veja no topo da página que usei como exemplo o link RSS. O canal de news correspondente é: http://g1.globo.com/Rss2/0,,AS0-6174,00.xml Veja o código dela, será uma barbada. Se eu entendi bem, você quer ir um nível além dessa página, possivelmente o que você quer a a própria página da notícia. Você consegue isso brincando, usando esses canais específicos e um script bem simples. A ordem é cronológica reversa, quer dizer, você vai baixando até encontrar o primeiro link já baixado anteriormente, podendo abortar imediatamente o processo. Se não existir um canal rss com o que quer, realmente vai ter de garimpar na página. Boa diversão para shell e conectividade. Sucesso! -- >From: "Alain M." <[EMAIL PROTECTED]> >O objetivo era perto disso, tanto que tua dica vai me ajudar. Eu quero >pegar outra parte da tela e as telas seguintes... Já tenho algo >funcionando, vou enviar em seguida, para quem interessar - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Sa�da diferente ap�s redirecionamento
Vão aà mais algumas idéias. dpkg -l|md5sum;dpkg -l >/tmp/dpkg.l;md5sum /tmp/dpkg.l dpkg -l|xxd|tail; xxd /tmp/dpkg.l|tail dpkg -l|while read;do echo "$REPLY";done while read;do echo "$REPLY";donehttp://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Crontab & "dumb" Terminal
Vai uma sugestão, mas não incluí usuário. Claro que quem chama o teminal é um usuário determinado. Em caso de duvida faça um log com whoami. Pelo que entendi a execução é em um xterm. Se aparecer quebrado, abaixo é apenas uma linha: xterm -e ". /etc/profile;TERM=linux;cd /home/sistema;./exporweb.e;read -p Resultado?" On 4/3/07, Flavio Junior <[EMAIL PROTECTED]> wrote: > Boa noite pessoal, > > Uma duvida mais conceitual do que tecnica... > > Tenho um programa feito por um cliente em Clipper e compilado com > FlagShip, ele roda uma rotina numa base de dados DBase e gera arquivos > .sql para importação no mysql. > > Primeiro problema: > aguia:/home/sistema# ./exporweb.e > request to switch into FULLSCREEN mode failed: too dumb terminal > 'xterm' (no cursor move capabilitie) > > Solução: TERM=linux > Beleza, funciona normalzinho se executado na mão. > > Agora via crontab, não consigo burlar isso: > request to switch into FULLSCREEN mode failed: can run only on terminal > > Essa acima é a mensagem que aparece no log do programa, qdo rodo pelo > crontab. > > Coisas que já tentei: > - Screen > - expect com spawn > - expect com system > - criar um script.sh e setar as variaveis como: . /etc/profile; > TERM=linux; e chamar o script > - Chamar no crontab: (cd /home/sistema; TERM=linux ./programa) > - Criar um arquivo .sh com export TERM=linux; ./programa
Re: [shell-script] script adsl
Experimente a função "tecla" disponível em: http://planeta.dyndns.org/scripts/funcs Ela tem por finalidade dar saída apenas para as teclas alfanuméricas especificadas, ignorando as demais. Suponha que apenas as teclas A, T e 5 devem ser aceitas. Considere que quer a saída exclusivamente em lower para facilitar codificação de ifs e cases. Chame assim: tecla at5 l Não trata pressionamento simultâneo de teclas. -- >From: Jorge Barros de Abreu <[EMAIL PROTECTED]> > >Olá. > >Sou dos que preferem se conectar à internet somente quando necessário e para >isso criei um script que está anexado a essa mensagem. > >O problema está na hora de solicitar a desconecção. > >Já tentei fazer a desconecção pressionando qualquer tecla mas não fiquei >satisfeito pois as teclas alfanuméricas são tratadas pelo bash de forma >diferente das tecla "home" e "end"por exemplo. > >Da forma como está anexado a essa mensgem ele está plenamente funcional desde >que eu pressione apenas teclas alfanuméricas. > >O script presume a utilização do pppoe-start/stop. > >???Como o modifico para que ele seja encerrado com o pressionamento da >letra "a" somente? - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: Re: [shell-script] Qual o FOR mais rápido
O melhor é você ver as operações realizadas fazendo um set -x antes do loop. Isso não mostrará o tempo para execução de cada uma mas dará um visão do que ocorre. Também considero interessante para a comparação temporal reduzir as operações no loop, por exemplo: for i in $(seq 9) do : done Indo apenas até 9 é suficiente para apreciação do set -x. Para a medição do efeito penso que um loop que ultrapasse o minuto seria mais conveniente para estabelecer proporções reduzindo influênica de tempos de carga de programas envolvidos, claro que sem o -x então. Normalmente os programas externos são mais eficientes no que fazem, pois geralmente são especializados. A vantagem dependerá da quantidade de trabalho que realizará, do tempo para ser posto em funcionamento e dos recursos que absorverá em relação ao disponível. -- >From: "Christian Lyra" <[EMAIL PROTECTED]> >Date: Sat, 14 Apr 2007 08:25:20 -0300 > >Acredito que a razão seja outra. O seq é executado de uma vez e gera toda a >seguencia de numeros, assim o "for" só precisa percorrer ela. No segundo >caso, para cada iteração é necessário executar uma operação matemática e uma >comparação. > >On 4/14/07, Thiago Argolo <[EMAIL PROTECTED]> wrote: >> >> No primeiro, assim como no segundo script, há um incremento, no primeiro >> caso declarado explicitamente enquanto no segundo atraves do seq. Porem, >> no >> primeiro para cada repetição do laço ele faz uma comparação (se i <= >> 9) >> o que diminui a eficiencia do codigo. >> Acho que é isso, corrijam-me se estiver errado! >> >> Em 13/04/07, Amador Pahim <[EMAIL PROTECTED]> >> escreveu: >> >> > >> > Estava eu aqui fazendo meus .sh, e me deparei com uma dúvida: Qual é a >> > forma mais rápida de execução do comando FOR. Cheguei a tais resultados: >> > >> > Script teste01.sh: >> > >> > for ((i=1; i<=9; i++)) >> > do >> > if [ $i == 9 ] >> > then >> > echo Executando ultimo laço >> > fi >> > done >> > >> > >> > [EMAIL PROTECTED]:~# time ./teste01.sh >> > Executando ultimo laço >> > >> > real 0m4.037s >> > user 0m3.604s >> > sys 0m0.172s >> > >> > Script teste02.sh: >> > >> > for i in $(seq 9) >> > do >> > if [ $i == 9 ] >> > then >> > echo Executando ultimo laço >> > fi >> > done >> > >> > >> > [EMAIL PROTECTED]:~# time ./teste02.sh >> > Executando ultimo laço >> > >> > real 0m2.701s >> > user 0m2.432s >> > sys 0m0.176s >> > >> > Esses resultados me deixaram um pouco confuso, pois imaginei que meu >> > script 01, por utilizar um incremento nativo do FOR fosse ser mais >> > rápido do que o script 02, que usa uma chamada a um comando externo. >> > Alguem poderia me ajudar a interpretar melhor esses resultados? - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] --post-data no wget
Para ir direto ao ponto sugiro que colete as streams na interface de comunicação com o ngrep. Caso o volume de dados seja muito grande, talvez prefira separar bursts, input e output, ou se precisar coletar todo o espectro binário, nesse caso recomendo o tcpflow. Não parece ser o caso. Com essa coleta você terá certeza do que, de onde e para onde, está sendo enviado e recebido. De posse disso ficará fácil reproduzir a ação do cliente default, sendo que provavelmente um simples bash poderá fazer todo o serviço, principalmente se não surgir um https no caminho. -- >From: "Thiago Argolo" <[EMAIL PROTECTED]> >Date: Mon, 16 Apr 2007 01:33:27 -0300 > >Tentei pegar a tabela e nada! >quando faco o login (via browser) ele me redireciona pro seguinte link: >http://dgp.cnpq.br/diretorioc/fontes/index.jsp >porem, quando executo o comando q falei, ele me retorna a mesma pagina de >login. Achei q o erro poderia estar em alguns dos dados enviados pelo >post... - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Exibição variaveis
Apenas uma opinião: Claro que usar programas externos resolve, mas me parece um exagero a carga de um para retirar 1 byte de uma string de cerca de 16 bytes. A linha no "unix" termina com x0A, assim como no "dos" e seus sucessores. O detalhe é que a ms usa um "carriage return" (x0D) antes de cada "new line" e esse byte sobra então no fim da linha em leitores tipo unix. Preparei o bloquinho abaixo, já com new lines ignoradas, para colar direto na console de uma vez e ver o resultado com uma tecla. Se não selecionar nenhuma linha além do echo, o Enter fica por sua conta. :) z=$'ABC\rD\15E\x0dF';\ cat -v<<<$z;\ cat -v<<<${z%?};\ cat -v<<<${z/$'\r'};\ cat -v<<<${z//$'\r'};\ echo $z Tudo funcionou como esperava no: $ bash -version GNU bash, version 3.2.0(1)-release (i686-pc-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. Se a string já está numa variável e, supondo que se chame z, o último byte pode ser retirado pelo próprio shell simplesmente com ${z%?} Espero que seja de alguma utilidade. Questões? man bash -- >From: Fernando Garcia <[EMAIL PROTECTED]> >Date: Fri, 20 Apr 2007 18:01:37 -0300 > >Olha o que aparecia: > >n: Fa0/47;2;2;1;Shutdown^M$ (Lembra microsoft, acho q por isso nao >funcionava :-D > >Removi com um sed e ta funcionando agora. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Exibição variaveis
Opa Julio: Diante do tamanho da string, ainda assim, eu não exitaria em guardar a saída de stdout em uma nova variável economizando os tubos, digo, um pipe, mais ainda considerando ser o sed o destinatário. Aproveitando, depois que enviei a mensagem me toquei que cometi um erro. Ele não apareceu no bloco porque setei variável, mas de outra forma poderia ter ficado claro. Octais são representados no shell prefixados por \0 e hexadecimais por \x, ou seja, onde escrevi \15 deveria ter escrito \015. Eis como faz diferença: prompt> z=$'\15\015';echo -ne "$z\15\015"|xxd 000: 0d0d 5c31 350d ..\15. Prefiro sempre visualizar em hexa, por isso uso muito o xxd (vim). Estou meio enferrujado no uso da base binária. :) Quanto ao conteúdo do post, fique à vontade para usá-lo em qualquer lugar, sendo de minha parte dispensada qualquer citação de origem. Já vi o que falei, e muito mais, neste link: http://planeta.dyndns.org/unix/exemplos.txt Prefiro sempre que possível apenas citar links ao invés de teclar. No histórico da lista vi como questões se repetem indefinidamente. Bom seria uma consolidação em faq ou wiki, algo mais ágil na consulta, mas é difícil manter. []s -- >From: "Julio C. Neves" <[EMAIL PROTECTED]> >Date: Sat, 21 Apr 2007 10:48:48 -0300 > >Fala Mop, >concordo totalmente com vc na afirmativa que "me parece um exagero a carga >de um programa externo para retirar 1 byte de uma string de cerca de 16 >bytes", mas infelizmente a técnica de expansão de parâmetros aplica-se >somente a variáveis e, se não me engano, o problema apresentado era em um >arquivo que não estava sendo trabalhado em loop. > >Mas a dica é muito boa e acho que vc deveria mandá-la para o Cantinho do >Shell das Dicas-l. > >Abração, >Julio >:wq > >Em 20/04/07, mop <[EMAIL PROTECTED]> escreveu: >> >> Apenas uma opinião: >> >> Claro que usar programas externos resolve, mas me parece um exagero >> a carga de um para retirar 1 byte de uma string de cerca de 16 bytes. >> >> A linha no "unix" termina com x0A, assim como no "dos" e seus sucessores. >> O detalhe é que a ms usa um "carriage return" (x0D) antes de cada >> "new line" e esse byte sobra então no fim da linha em leitores tipo unix. >> Preparei o bloquinho abaixo, já com new lines ignoradas, para colar direto >> na console de uma vez e ver o resultado com uma tecla. Se não selecionar >> nenhuma linha além do echo, o Enter fica por sua conta. :) >> >> z=$'ABC\rD\15E\x0dF';\ >> cat -v<<<$z;\ >> cat -v<<<${z%?};\ >> cat -v<<<${z/$'\r'};\ >> cat -v<<<${z//$'\r'};\ >> echo $z >> >> Tudo funcionou como esperava no: >> $ bash -version >> GNU bash, version 3.2.0(1)-release (i686-pc-linux-gnu) >> Copyright (C) 2005 Free Software Foundation, Inc. >> >> Se a string já está numa variável e, supondo que se chame z, o último byte >> pode ser retirado pelo próprio shell simplesmente com >> ${z%?} >> >> Espero que seja de alguma utilidade. >> Questões? >> man bash >> >> >> -- >> >From: Fernando Garcia <[EMAIL PROTECTED]> >> >Date: Fri, 20 Apr 2007 18:01:37 -0300 >> > >> >Olha o que aparecia: >> > >> >n: Fa0/47;2;2;1;Shutdown^M$ (Lembra microsoft, acho q por isso nao >> >funcionava :-D >> > >> >Removi com um sed e ta funcionando agora. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] ajuda com dir
Como você pode ter feito algo diferente do que pensa ter feito, eu iniciaria com o histórico dos comandos digitados, cursor para cima, supondo que isso foi feito no prompt do shell. find / -name eduardo seria meu passo seguinte, ja que o htdocs foi achado e supondo que o seu mv não enviou para um destino externo. Se com isso, mais o que o Bruno sugeriu, não aprecer nada, eu partiria para a busca direta dentro de arquivos de alguma string que fosse rara e tivesse certeza que está contida em um dos arquivos do diretório. É, algo como: grep -R "só tem aqui esse tróço" / Isso levará um tempão. É melhor maneira de se vingar no subalterno quando o chefe faz uma ..., azar da máquina nesse caso. Existe a hipótese de ter ocorrido uma deleção, mas depois de tudo isso os setores de disco liberados com o conteúdo alvo já devem ter sido sobrescritos. Adios! Bem, é nessa hora, ou poderia ser antes, dependendo da intuição, que entra em cena o Magnífico Mr. Back-Up. Caso já tenha achado avise para ninguém mais esquentar a cabeça. Se souber o que aconteceu conte também, será um instrutivo alerta. Sorte! -- >From: "Bruno Gunter Fricke" <[EMAIL PROTECTED]> >Date: Sun, 22 Apr 2007 16:17:41 -0300 > >antes dê tudo, dê um $ updatedb >Depois, $ locate www/htdocs/eduardo > >se não aparecer, vá para o "/" e execute >$ find . | grep -ril "www/htdocs/eduardo" * > >[]'s > > >- Original Message - >From: Eduardo daSilva Ramos >To: shell-script@yahoogrupos.com.br >Sent: Sunday, April 22, 2007 1:58 PM >Subject: [shell-script] ajuda com dir > > >amigos seguinte nao sei por que eu estava mexendo num dir meu, ex. >cd /www/htdocs/eduardo >mkdir teste >eu movi o teste para umdir abaixo >mv teste/ ../ >e ele simplesmente nao esta em www/htdocs/ caraca era importante tinha >coisas dentro como fazer ? nao consigo mais ver o diretorio. >obrigado! > > > > > >[As partes desta mensagem que não continham texto foram removidas] > > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] ajuda com dir
Vendo a sua mensagem com mais atenção vi só mv. Se não for um alias pode ter acontecido algo muito diferente do que pensei na resposta anterior. Ela foi dada pensando em um "mv -i". Eu nunca, JAMAIS, EM HIPÓTESE ALGUMA, uso "mv" apenas, só em scripts, depois de ter certeza do que estão realmente fazendo. Também não uso alias mv="mv -i" pois, se um dia for em outra máquina, ou na de outra pessoa, e emitir um mv mal acostumado posso causar sério dano. Fica aqui o registro desta minha filosofia. Da mensagem anterior o find e o grep perderam muita força, mas ainda têm alguma chance. O santo backup não foi afetado! :) -- >From: "Eduardo daSilva Ramos" <[EMAIL PROTECTED]> >Date: Sun, 22 Apr 2007 16:58:51 - > >amigos seguinte nao sei por que eu estava mexendo num dir meu, ex. >cd /www/htdocs/eduardo >mkdir teste >eu movi o teste para umdir abaixo >mv teste/ ../ >e ele simplesmente nao esta em www/htdocs/ caraca era importante tinha >coisas dentro como fazer ? nao consigo mais ver o diretorio. >obrigado! - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] ajuda com dir
Acho o cp menos perigoso que o mv, mas também sempre o uso com i após o - . O rm e rm -r uso sem interação (iI). Embora procure tomar cuidado já tive de pedir encarecidamente ao Dr. Backup que me devolvesse meu(s) arquivo(s) ou diretório. Infelizmente algumas vezes ele não sabia das últimas novidades. Outras tive de partir correndo para um undelete. É esse histórico de comandos shell é uma mão na roda, mas com a pressa parece que a mão é mais rápida que a vista e ... lá se foi um Enter, prematura ou indevidamente. Um toque despercebido na barra de espaço durante a edição pode ter um resultado incrivelmente trágico. O hardware evoluiu muito. Os crackers afetam pouco a nossa turma. Resumindo, hoje digo que a principal função do backup não é nos proteger das máquinas, ou do malware mas sim de nós mesmos. :) Desculpem se fui meio off mas achei que cabia na thread. -- >From: "Bruno Gunter Fricke" <[EMAIL PROTECTED]> >Date: Sun, 22 Apr 2007 23:00:25 -0300 > >Mop, >Eu apenas uso o mv depois de um cp. Justamente para evitar estes >problemas... >Ahhh, bacana seu e-mail... hahahaha > > >Eduardo, faz o seguinte... Segue o conselho do Mop, dá uma olhada no com um >$ cat /home/usuario/.bash_history | grep "teste/" > >Se você não achar... Dá um ls -la no www/htdocs... Será que existe um >diretório sem nome lá? Olha o teste que eu fiz: > >[EMAIL PROTECTED] ~]$ mkdir a >[EMAIL PROTECTED] ~]$ cd a >[EMAIL PROTECTED] a]$ mkdir b >[EMAIL PROTECTED] a]$ ls >b >[EMAIL PROTECTED] a]$ mv b ../ >[EMAIL PROTECTED] a]$ ls >[EMAIL PROTECTED] a]$ cd .. >[EMAIL PROTECTED] ~]$ ls b >[EMAIL PROTECTED] ~]$ ls -la >[EMAIL PROTECTED] ~]$ ls -l b >b/ bin/ > >Experimenta aí. > >[]'s >Bruno Gunter > > >- Original Message - >From: "mop" <[EMAIL PROTECTED]> >Sent: Sunday, April 22, 2007 10:11 PM > > >> Vendo a sua mensagem com mais atenção vi só mv. >> Se não for um alias pode ter acontecido algo muito diferente do que >> pensei na resposta anterior. Ela foi dada pensando em um "mv -i". >> Eu nunca, JAMAIS, EM HIPÓTESE ALGUMA, uso "mv" apenas, só em scripts, >> depois de ter certeza do que estão realmente fazendo. Também não >> uso alias mv="mv -i" pois, se um dia for em outra máquina, ou na de >> outra pessoa, e emitir um mv mal acostumado posso causar sério dano. >> Fica aqui o registro desta minha filosofia. >> >> Da mensagem anterior o find e o grep perderam muita força, mas ainda >> têm alguma chance. O santo backup não foi afetado! :) >> >> -- >>>From: "Eduardo daSilva Ramos" <[EMAIL PROTECTED]> >>>Date: Sun, 22 Apr 2007 16:58:51 - >>> >>>amigos seguinte nao sei por que eu estava mexendo num dir meu, ex. >>>cd /www/htdocs/eduardo >>>mkdir teste >>>eu movi o teste para umdir abaixo >>>mv teste/ ../ >>>e ele simplesmente nao esta em www/htdocs/ caraca era importante tinha >>>coisas dentro como fazer ? nao consigo mais ver o diretorio. >>>obrigado! - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Coletar dados de arquivo
Imagino que isso seja só o header. Provavelmente tem carriage returns e a existencia somente de um deles na liga separa o header do corpo. Se for isso eu faria algo assim, falando de 1 arquivo apenas. Como já há espaços sugiro o tab como separador, já que com "um ao lado do outro" entendi sem new lines. while read &&[ "$REPLY" != $'\r' ];do REPLY=${REPLY#* } echo -ne "${REPLY%?}\t" doneFrom: "Alexandre Andrade" <[EMAIL PROTECTED]> >Date: Mon, 23 Apr 2007 14:14:40 -0300 > >Hello lista, > >Tenho vários arquivos com a seguinte saída. > >MIME-Version: 1.0 >Date: Fri, 25 Aug 2006 17:03:57 -0300 >From: Alexandre Andrade <[EMAIL PROTECTED]> >Organization: OTV >Message-ID: <[EMAIL PROTECTED]> >User-Agent: RoundCube Webmail/0.1b >Content-Type: text/plain; charset="UTF-8" > >Gostaria de fazer um Loop que pra cada arquivo que ele olhe ele gere a >saída dos campos acima uma do lado da outra, pra assim eu poder enviar >pro Mysql. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Find para mostrar o ultimo arquivo criado
Eu não. Com relação ao problema, no entanto, eu usaria o ls para isso com: cp `ls -lt arquivo1*|head -n 1` /home/teste -- >From: "Rodrigo Santos Vieira" <[EMAIL PROTECTED]> >Date: Tue, 24 Apr 2007 06:15:54 -0300 > >Bom dia pessoal. > >Fiz um shell para copiar o ultimo arquivo criado para um diretório, utilizei: > >find arquivo1* -mtime -1 -exec cp {} /home/teste \; > >utilizo o asterístico ( * ) no final do arquivo1 porque quando ele é criado o >final dele é uma seguencia numérica aleatória. >Mas esse find na verdade pegar todos os ultimos arquivos criado da ultimas >24hs com o nome aquivo1. >Portanto de tiver mais de um arquivo1 criado nas ultimas 24hs o find tambem >vai pegar. > >Alguem saberia me informar um comando do find para que o shell só copie o >ultimo arquivo criado? > >Obrigado >Rodrigo - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Find para mostrar o ultimo arquivo criado
--- Peço desculpas pelo reenvio, o certo é: ls -1t --- Eu não. Com relação ao problema, no entanto, eu usaria o ls para isso com: cp `ls -lt arquivo1*|head -n 1` /home/teste -- >From: "Rodrigo Santos Vieira" <[EMAIL PROTECTED]> >Date: Tue, 24 Apr 2007 06:15:54 -0300 > >Bom dia pessoal. > >Fiz um shell para copiar o ultimo arquivo criado para um diretório, utilizei: > >find arquivo1* -mtime -1 -exec cp {} /home/teste \; > >utilizo o asterístico ( * ) no final do arquivo1 porque quando ele é criado o >final dele é uma seguencia numérica aleatória. >Mas esse find na verdade pegar todos os ultimos arquivos criado da ultimas >24hs com o nome aquivo1. >Portanto de tiver mais de um arquivo1 criado nas ultimas 24hs o find tambem >vai pegar. > >Alguem saberia me informar um comando do find para que o shell só copie o >ultimo arquivo criado? > >Obrigado >Rodrigo - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Separar linhas do arquivo
tail -f arquivo|while read;do case ${REPLY%%=*} in INTERFACE|WINDOWS|EMAIL|DATE)echo "$REPLY";esac done -- >From: Edilson Azevedo <[EMAIL PROTECTED]> >Date: Tue, 24 Apr 2007 17:16:32 -0300 > >-BEGIN PGP SIGNED MESSAGE- >Hash: SHA1 > >Olá pessoal! > >Eu tenho um arquivo com a seguinte estrutura: > >INTERFACE="eth0" >VPN_FILE="/diretorio/openvpn.cfg" >WINDOWS="2003_SERVER" >EMAIL="" >DATE="01/10/2004" >CISCO="CAPAN_13" > >Eu gostaria que ele me mostrasse apenas essas linhas: > >INTERFACE="eth0" >WINDOWS="2003_SERVER" >EMAIL="" >DATE="01/10/2004" > >Mais isso de uma forma dinâmica entenderam? Como se fosse um tail -f no >arquivo e um grep que me retornasse apenas os dados que eu preciso, mais >sempre na ordem certa. Nada de pegar data de um com EMAIL de outro. A >saída tem que obedecer a ordem dos blocos. > > >-BEGIN PGP SIGNATURE- >Version: GnuPG v1.4.3 (GNU/Linux) >Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > >iD8DBQFGLmWgYeJNlRYHC5oRAjKrAKCUgYBjufVZ8HuYV9lb6oQ1awLW6wCfVgGe >BgrGX0Chd/Y6qIckBx+7bP8=WUj4 >-END PGP SIGNATURE- > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] site login
Considerando que você falou lynx, não deve ser https. Sendo assim, o ngrep que sempre recomendo para casos simples deve resolver. Hoje vou além, colocarei o conteúdo do meu script que se chama ngrep justamente para eu guardar apenas um nome. Costumo fazer isso ao ler o man, filtrar minhas necessidades, e poder esquecer os detalhes do ELF. Se não tiver o binário ngrep consulte seu fornecedor de software ;) , ou use outro sniffer de sua preferência. Normalmente deve ser executado como root pois geralmente só ele tem total acesso à interface de rede. Acerte para a sua porta de rede e seja feliz! #-W normal|byline|none # -d dev By default ngrep will select a default interface to listen on. # Use this option to force ngrep to listen on interface dev. # -d eth0 # -x Dump packet contents as hexadecimal as well as ASCII. # -l Make stdout line buffered. PAR='-W byline' #PAR='-W normal' [ "$1" ]&&{ [ "$1" == "-x" ]&&PAR=$1||{ echo "uso: $0 [-x]";exit 1;};} /usr/bin/ngrep $PAR -l -p -P ^ - Geralmente o volume de dados é alto e costuma na maioria dos casos encher muitas telas e nem com Shift PgUp você consegue buscar o início da conversa originada pelo seu browser. Melhor nesses casos enviá-lo para arquivo com script >/tmp/coleta Depois com um editor você marca o que precisa cola no seu script, acerta algum deta-lhe e pronto. Como o Tiago já disse, user e password, podem estar codificados de alguma forma, mas neste momento isso não importa pois você já terá o que precisa pronto e codificado para enviar. Como usar isso com programas, não sei, normalmente uso apenas o shell para isso, mas é simples, você já sabe o que deve enviar, é só brincar com o seu programa para que faça exatamente a mesma coisa e que você pode checar com o ngrep sempre que desejar. :) Sorte! -- >From: "Josenivaldo Benito Junior" <[EMAIL PROTECTED]> >Date: Wed, 25 Apr 2007 18:31:13 -0300 > >Olá pessoal, > >Eu tenho um script onde uso o lynx para acessar um site. O site pede login e >senha através do brownser (deve usar o .htaccess certo?). Neste caso nenhum >problema. O fato é que um outro site, uma espécie de bugzilla que usamos >aqui na empresa, requisita login quando é acessado pela primeira vez. Mas, >este login é solicitado através de uma página, e nào usando os diálogos do >browser. Neste caso a opção -auth do lynx não tem efeito. > >Alguém tem alguma idéia de como logar no site e então fazer o dump do >resultado? > >Muito obrigado. > >Abraço >Benito. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Loop infinito "invisível"!
Talvez já tenha feito isso, caso não, experimente pois pode te dar alguma pista. Insira um set -x em algum ponto do script para o shell escrever em stderr cada passo que fará. Se o volume de informações ficar muito alto na tela pode ser melhor enviar para arquivo com um exec 2> /tmp/teste Pode acompanhar on the fly com tail -f /tmp/teste em outro terminal ou examinar posteriormente, ou na hora, o arquivo com um editor. No segundo caso não esqueça que ele já pode ter aumentado desde que o carregou para o exame atual. Também parece interessante que o script reporte quando inicia e quando termina, com um echo "alguma coisa" >&2. Isso pode ajudar a determinar se há realmente um loop e se ele é interno ou não. Boa caça! -- >From: "Diego Pasqualin" <[EMAIL PROTECTED]> >Date: Wed, 25 Apr 2007 13:10:22 - > >Bom dia, estou criando um script para verificar existência de HD em >uma máquina com bootremoto. Caso o HD exista, verifica se ele se >encontra nos padrões (uma única partição, no formato XFS), se >negativo, refaz a tabela de partições, se o hd está no padrão, roda um >xfs_repair. > >Simples, não fosse o inconveniente de, no "else", da cadeira de "if's" >que verificam o padrão, o script entrasse em um loop (!?). Detalhe que >no script inteiro não existe nenhum loop, o que retira a possibilidade >de erro de sintaxe, além do mais, o fato acontece somente no else, >caso um dos ifs acima seja executado, o programa segue normalmente. > >Quem chama esse meu script shell é um scrip expect, comando exec >/sbin/verifica_tipo3, já tentei usar exec bash -c >"/sbin/verifica_tipo3" tb, sem sucesso. > >Reparei que se eu comentar o comando xfs_repair, o script não entra em >loop! Porém, apesar de parecer óbvio, é estranho acreditar que ele >seja o problema, já que, se executado "no braço", fora do script, >também funciona normalmente. > >Ai vai parte do código: > >###code-### >--- > ># Se existir mais que duas particoes, ou nao existir particoes. >if [ ${TESTE} -eq 0 ]; then ># Terminal nao e tipo 3 >exit 0; > >elif [ ${TESTE} -gt 2 -o ${TESTE} -eq 1 ]; then >MSG="Um HD foi encontrado, porém não se encontra no padrão >Paraná Digital. >Criando partição e formatando HD, esta operação pode demorar alguns >minutos..." >mensagem "${MSG}" > >cria_particao >formata_particao > ># fstyp retorna o nome do sistema de arquivos, se for diferente de >Xfs, formata particao >elif [[ $(fstyp "${HD}1") != "xfs" ]]; then >MSG="Um HD foi encontrado, porém nao se encontra no padrão >Paraná Digital. >Formatando HD, esta operação pode demorar alguns minutos..." >mensagem "${MSG}" >formata_particao > ># Se existir apenas uma particao e ela for xfs, faz um teste de >integridade >else >MSG="Verificando integridade do HD. >Esta operação pode demorar alguns minutos..." ># mensagem "${MSG}" > >if mount | grep -q ${HD}1; then >umount ${HD}1 >fi ># xfs_repair ${HD}1 >mount ${HD}1 /media/hd >fi > >###code-### >--- > >Como mencionado, o programa apresenta comportamento inesperado somente >no else. Já tentei colocar exit 0 depois do repair. Já verifiquei que >o repair é executado corretamente, retorna 0, reparei também, que a >cada loop, a instância ($$) é diferente. > >Alguma sugestão? >Obrigado, e desculpem o e-mail longo. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Teste de parametros
par(){ for p in 1 2;do eval "[ \${#$p} = 12 ]&&[ n\$$p = n\${$p//[^0-9]} ]"||return done;} par 193456789012 199456789012 || echo p$p nOK --- yahoogrupos: Respostas, por favor, sem endereço de email do corpo da mensagem. Obrigado! - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Separar arquivos em blocos
Eu usaria (uso) coisas assim: while read;do [ "$REPLY" = "From maillo" ]&&HEADER=1&&echo inicio [ "$REPLY" = "X-Mailer: XP" ]&&HEADER=&&echo fim doneFrom: Edilson Azevedo >Date: Tue, 08 May 2007 10:03:38 -0300 > >Bom dia pessoal! > >A algum tempo mandei um email para vcs para me auxiliar a retirar >alguns dados de um arquivo. Lembrando, a sintaxe do arquivo é essa aqui: > >Date: Mon, 7 May 2007 10:05:37 -0300 (BRT) >From: "Javali cafona" <[EMAIL PROTECTED]> > >Como podem ver é o cabecalho de uma mensagem de email. Para separar o >"From" numa variável, por exemplo, eu uso: >FROM=`cat $ARQ| grep '^From' | cut -f2 -d'<' |sed -e s/"From: "// |tr -d >'>'| sed 's/^[ ]*//;s/[]*$//'`(assim eu pego só o endereço de >email >do sujeito) > >Aprendí muito com vcs e tudo está joia! Porém (sempre tem um porém... >rsrs), Eu me deparei com uma dúvida. Sei separar por linhas, sei limpar >a linha e sei salvar em banco. Mais como faço para saber se a informação >que tenho é realmente de email1 ou email2? > >Não sei se estou sabendo me expressar, mais minha dúvida é a seguinte: É >possivel fazer com que o shell-script separe um arquivo por blocos?? >Dessa forma eu faria assim (desculpe a ignorância, mais tentarei dar um >exemplo): > >Email 1 >>From maillog >Date: Mon, 10 May 2007 11:02:01 -0300 (BRT) >Subject: >From: "Javali cafona" <[EMAIL PROTECTED]> >X-Mailer: XP > >Email 2 >>From maillog >Date: Mon, 7 May 2007 10:05:37 -0300 (BRT) >From: "Javali cafona" <[EMAIL PROTECTED]> >Cco: [EMAIL PROTECTED] >X-Mailer: XP > >Eu quero que o shell leia o arquivo, quando ele encontrar "From maillog" >ele saiba que é o inicio do bloco e quando ele ler "X-Mailer: XP" saiba >que é o fim. Dessa forma ele inicia o trabalho em $BLOCO. Depois ele lê >o conteúdo de $BLOCO (From:, To:, Date:) e manda para devidas variáveis >($FROM, $TO, $DATE) e pronto! Ele manda o valor de $FROM para >arquivo texto (ou em banco, que é o meu caso). >Daqui por diante ele deve descartar o valor de todas as variáveis e >continuar para o _próximo_ bloco, que ele sabe que começa em "From >maillog" e termina em "X-Mailer: XP". Sacaram? O problema principal >seria essa idéia de separar em blocos, coletar variáveis e pular para o >próximo bloco. Francamente nunca lí nenhum script que faça isso... rs. > >Se alguém puder me dar uma luz! > >Valeu Pessoal!!! >-- > > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] ER para validar IP
Tem algo para validar IP em: http://planeta.dyndns.org/unix/exemplos.txt Procure por "faixa de ip". Não sei se funciona ou se vai la linha que você quer (ER), mas acho que não custa dar uma olhada. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Configurando o ESC
Um rabisco rápido apenas com a funcionalidade do BS existente no read mais o ESC solicitado. Para aprimorar a edição com outras teclas basta seguir o princípio, mas a complexidade aumentará desproporcionalmente. T= while read -s -n1 t&&[ $t ];do [ "$t" = $'\x1b' ]&&T=&&break [ "$t" = $'\x08' ]&&T=${T%?}||T=$T$t echo -ne "\r \r$T" done echo;echo T=$T O código deve aparecer mais correto no link: http://br.groups.yahoo.com/group/shell-script/message/22773?unwrap=1&var=0 - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Re: mult-thread bash
Poderia apresentar a sua proposta para a questão colocada? -- >From: "Jorge Pereira" >Date: Thu, 24 May 2007 09:46:30 -0300 > >putz!! > >Pra que fazer um "tanque de guerra" para matar um formiga? > >[]s - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Duvida: Resultado do "fdisk -l", num menu do dialog...
Veja se isso te dá alguma idéia: P=;p=0;while read d;do P="$P '$[p++]' '$d' ";done< <(fdisk -l|grep ^/) echo $P - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] cópia partição inteira com tar ou com cp?
Com sockets (entre maquinas distintas) tenho usado o tar assim, para a saída padrão: no transmissor: tar cvf - $1 # $1 é o ponto alvo (dir ou arq) no receptor: tar xfv - Mas se é na mesma máquina pensaria em um cp -pR... Veja man cp para maiores detalhes. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] screen em um shell script
"Must be connected to a terminal" Isso já diz tudo, o screen está sendo chamado por um script sem terminal. Supondo que o X está rodando, dê um xterm para o screen, substituindo no script: screen ... por xterm -e "screen ..." ou chame o tal script a partir de um term ou xterm. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] screen em um shell script
Agora ficou mais claro. Se a dica do Flavio não resolver, apele para o velho, bom e intimidador: man screen Procure a string: "-d -m" PS4all: vide strings "mail" abaixo -- >From: "Flavio Junior" >Date: Sat, 2 Jun 2007 20:55:03 -0300 > >Ta rodando do crontab ? eu tive o mesmo problema qdo precisei rodar do >crontab.. > >Bom, de qualquer forma, tente fazer isso: > >TERM=linux >export TERM >screen balh balh blah > >Ou seja, exporta o terminal antes.. mas no meu caso do crontab nao teve >solução.. > > >Flavio do Carmo Junior > >On 6/2/07, Lucas Mendes Marques Goncalves < idem endereço mail anterior> wrote: >> >> Muito obrigado, porém ... >> >> Na verdade, eu estou rodando no modo texto. >> Quando eu disparo o script, parece que ele abre um bash "sem terminal" >> (seja lá o que for isso) para rodar o script, e por isso o screen falha >> ... >> >> Eu gostaria de saber se posso corrigir isso sem precisar de xterm ou >> outra ferramenta gráfica (ie, rodar o script de forma que o bash que o >> interptreta "tenha um terminal" seja lá o que for isso) >> >> mop writes: >> >> > "Must be connected to a terminal" >> > Isso j? diz tudo, o screen est? sendo chamado por um script sem >> terminal. >> > Supondo que o X est? rodando, d? um xterm para o screen, substituindo >> > no script: >> > screen ... >> > por >> > xterm -e "screen ..." >> > >> > ou chame o tal script a partir de um term ou xterm. >> > >> >> Lucas Mendes >> >> -- >> For three years I had roses, and apologised to nobody. >> -- >> >> - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Dúvida
brdezao, mais um detalhe restritivo: Se o script contém dados ou nome de arquivos sensíveis, recomendo que você defina user:group do script como root:root ou root:nogroup. Adicionalmente comande: chmod go-rwx script Isso vai assegurar que apenas o usuário root poderá executar, ler ou copiar o script. Dispensaria inclusive qualquer tratamento dentro do script, dando uma resposta grosseira a quem tente acessá-lo e não seja o root. -- PS: retirei todos os endereços de email do texto, RECOMEDO! estarei sistematicamente lembrando isso, ou suprimindo todo o histórico -- >From: "Lucas Mendes Marques Goncalves" >Date: Sun, 3 Jun 2007 02:09:23 -0300 > >A variavel UID dá a UDI do usuário. > >o root tem UID zero > >assim, algo como > >if [ $UID -eq 0 ]; then echo "vc eh root"; fi > >detecta se o usuário é root. > >Já que vc é novo, se manjar alguma coisa de inglês, recomendo: >http://www.gentoo.org/doc/en/articles/bash-by-example-p1.xml > >brdezao writes: >> Olá. >> Sou novo no mundo do Shell Script, e to com uma dúvida. >> >> Seguinte, to criando um Script aki,e queria que ele só pudesse ser >> executado pelo root (Por envolver alguns arquivos de conf.). >> >> Então queria que logo no inicio do script ele detectasse o usuário que >> ta rodando e enviasse uma mensagem. >> >> Alguem tem alguma ideia de como me ajudar ou um script pra me mandar >> como exemplo ?? >> >> grato a todos. >> Isso entraria num If como ??? >> >> >> >Lucas Mendes > >-- >For three years I had roses, and apologised to nobody. >-- > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Ajuda para criar um script
Você pode consultar também esta thread: http://br.groups.yahoo.com/group/shell-script/message/22775 E dar um feedback de propostas apresentadas, quando for o caso! -- >From: "=?ISO-8859-1?Q?Andr=E9_Unno?=" <[EMAIL PROTECTED]> >Date: Mon, 4 Jun 2007 16:26:49 -0300 > >Boa tarde pessoal. >Estou quebrando a cabeça para fazer um script que faça o seguinte: > >Eu tenho um arquivo, por exemplo, com o seguinte conteúdo: > >1 >2 >3 >4 >5 >teste >6 >7 >8 >9 >10 >teste >11 >12 >13 >14 >15 >teste > >Eu preciso fazer com que ele separe esse arquivo e cada novo arquivo deve >conter o conteúdo entre um teste e outro. > >Alguém poderia me dar uma luz? > >-- >André Unno >GNU/LinuxCounter#390708 >http://counter.li.org > >O sistema pediu: "Requires Windows 9x, Windows 2000 or better". >Então eu instalei Linux. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [off-topic] [shell-script] Integra��o com mySQL - sem script longo
O off é meu, que fique bem claro. Tentei acessar os links mas sem sucesso. Pode ser algo temporário. Acho que seria mais prático e muito mais versátil, caso não tenha uma opção já, que crie um espaço pessoal em um bom servidor. Existem muitas opções, tavez o ig também tenha. Daà você pode salvar o arquivo em um pasta especÃfica, colocar uma página index html de entrada mencionando todos os seus scripts, etc. Seria a tal da home page pessoal. Acredito que salvando o arquivo como *.txt qualquer navegador exibirá corretamente. Poderá também inserir o código em uma página html, quer dizer, você terá muito mais controle e poderá usar o espaço para muitas outras coisas. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] execução de shell
O que normalmente se faz é o que o Edson já citou. Mas você pode executar o script em um lugar qualquer colocando o caminho absoluto ou relativo para ele. Lembre que normalmente deve ser executável, mas você pode usar como source sendo apenas legível. Finalmente, eu prefiro colocar a grande maioria dos meus scripts em diretorio exclusivo, de path bem curto e, sendo o primeiro na variável PATH. Sucesso! PS: Ia dar muitos palpites naqueles off, mas quero preservar a cabeça ;) Um grupo que eu assinaria seria o OffShell, acho que ia dar muito "ibope" Dei a idéia, mas eu não vou ser o pai, e também não quero assinar "trocentas" listas. :) - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: RES: [shell-script] dialog
Par mim não ficou claro se há X e se é desejado usar as mãos para chavear entre telas. Para console, tela única dividida (no hands on), experimente screen com ^aS - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] dialog
Talvez não precise ser instalado. Se houver ferramentas de compilação, apenas descompacte, faça os procedimentos recomendados e apesar de erro, prossivelmente, um ls -l multi* lhe dirá se nasceu um executável. Se sim, talvez baste um simples $ ./multitail Para man um $ man ./multitail.? Aliás os *nix são mais seguros mas, de forma genérica, baixar fontes de lugar qualquer e entregar para o root rodar os scripts é ... Por isso sempre experimento coisas com o mais "miserável" dos usuários. PS: o alerta nada tem a ver com o programa citado -- >From: Élvio Barbalho >Tiago bem interessante, mas infelizmente não sou o administrador da máquina >e não vou conseguir instala-lo aki, mas com certeza vou analisai-lo quando >chegar em casa, mas infelizmente no momento não resolve meu problema. > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Atribuir colunas de arquivo texto a variáveis
Se não gostou da minha idéia e, o conteúdo procurado somente pode ocorrer na coluna 3, apenas troque no script do julio: < arquivo.txt Por: < <(grep "o que voce quer" arquivo.txt) Parametrizar ou não, como? Vale o que eu já disse. PS: Júlio, boa essa das multiplas variáveis; eu sei que existe, não costumo usar e, sempre que é ultra conveniente não me lembro dela; gostei :) continue com essas "sacadas" geniais!!! -- >From: "Cristiano Ferrari" >Date: Mon, 25 Jun 2007 14:41:47 - > >Pessoal, obrigado a todos que responderam. > >A solução do mestre Júlio, reproduzida abaixo, foi a que melhor se >encaixou, para a questão da atribuição de variáveis. > >Entretanto, não consegui fazer com que o while só fosse processado >para as linhas cujo o texto da coluna 3, por exemplo, case exatamente >(não apenas contenha) com determinado padrão. > >O voyag3r me postou uma dica com o awk, mas eu não consegui >compreender muito bem. > > ><[EMAIL PROTECTED]> escreveu >> >> Só no Shell >> >> while read col1 col2 col3 ... coln >> do >> echo "$col1$col2" >> done < arquivo.txt >> >> Abraços, >> Julio >> :wq >> > > > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] duvida com ponto
cut -d . -f 1 impacta.txt|cut -c-80
Re: [shell-script] Compilador múltiplo
ls -1 *.c|while read F;do echo comp $F ${F%.*}.exe;done Acerte o comando e tire o echo.
Re: [shell-script] Leitura de arquivo...
Não entendi bem o que você quer fazer, mas experimente isto e veja se te dá alguma idéia. while read L;do [ "${L:0:6}" = secao_ ]&&continue [ "${L:0:9}" = subsecao_ ]&&S=${L:9}&&continue echo ${L/item/item.$S.} donehttp://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Leitor de buffer do gpm
Preciso passar o conteúdo do buffer do gpm (mouse interface caractere) via pipe para outro programa. No script uso xclip quando o X está rodando, mas na console (modo texto) ainda não descobri que programa faz isso. Tem de ser feito pelo script, sem interação humana, ou seja, qualquer ato manual de colar em algum lugar não serve. Qualquer dica é bem vinda. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Problemas com a propagação de permissão...
Mhayk: Pelo que entendi você criou um binário apenas para poder chamar o shellscript como root. Para coisas como essa, já há algum tempo, mudei a minha filosofia e passei a usar o sudo para isso. Inclusive fica totalmente transparente para o usuário pois embuto o teste de user no próprio script. Se o usuário não for o esperado o sudo é chamado para rodar o script. Não me lembro de ter visto qualquer problema de herança ao chamar subshells na seqüência. Eis algumas das linhas do /etc/sudoers onde qualquer um vira root. ALL ALL=(root)NOPASSWD:\ /sh/mod,\ /sh/o,\ /sh/r,\ /sh/edit /home/pes/*,\ /sh/edit /home/pub/* Nenhum "mortal" lê o sudoers: [EMAIL PROTECTED]/tmp# ls -l /etc/sudoers -r--r- 1 root root 498 2007-06-16 18:31 /etc/sudoers Apenas cuido bem do script que será entregue ao sudo, limitando fortemente os parâmetros que são aceitos e eliminando toda a interatividade sempre que possível. Algumas linhas, de muitas, de um script dessa classe: _ #!/bin/bash [ `whoami` = root ] ||{ sudo $0 $*;exit;} MakNod(){ set -x #Exemplo: MakNod /sys/class/video4linux/video "0 1 2 3" ^BT878 tv video for x in $2;do case $1 in none) ;;a) depmod -a ;;mouse) $MPRO psmouse ;;radio) #DEV=`grep radio /sys/class/*/*/name|cut -d : -f 1` $MPRO -r bttv;$MPRO bttv card=38 radio=1 /sh/dev radio '' radio ;;serial) # NO KERNEL: ;;cam) # CAMERA DIGITAL COMO ;;sound) ;;tv) # placa Phoebe TV Master + FM: /etc/X/xawtvrc ;; *) echo "Uso: $0 <$( grep '^;;' /sh/mod|grep ')' |tr -d ';)'|tr '\n' '|' )> [-r]" esac Espero que tenha alguma utilidade! Tio google, indexe para a posteridade! :) HiAll: comentários são sempre bem vindos - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Re: Problemas com a propagação de permissão...
Fala mestre JN, não me enganei não: >From Mhayk: "... séria dor de cabeça, setei o SUID em uma binário que internamente tem a função de iniciar um "initscript" chamado siav que eu mesmo fiz, então é nada mais que isso: execlp("/bin/bash", "/bin/bash", "-p", "/etc/init.d/siav", "start", NULL) ..." Acho que qualquer um ser root (principalmente eu :) é sempre perigoso, mas muitas vezes é inevitável. A diferença está apenas entre a má fé e o equívoco e os dois são muito perigosos. Já vivi o segundo muitas vezes. Já que tocamos no assunto, entranhei, há muito tempo, porque os shellscripts não respeitam seu suid. Deve ser uma restrição do shell e nunca me dei ao trabalho de setar o suid de um shell para ver o efeito. Quanto ao que o nosso colega falou, de perda de identidade, achei estranho, não me lembro de ter visto isso. Se eu não tivesse já a minha solução seria fácil de fazer umas experiências com o shutdown. Talvez a solução específica esteja no que o Reinaldo falou. Um feedback posterior seria muito construtivo. Assunto interessante, vamos ver que mais aparece... PS: como sou a bola da vez (n.2) estou eliminado meu endereço abaixo, aproveito e elimino o seu -- >From: "Julio C. Neves" >Date: Thu, 5 Jul 2007 09:53:06 -0300 > >Fala Mop, >quem falou do binário com SUID fui eu e não o cara que fez a pergunta. >Concordo com a sua colocação, mas considero todas estas formas de dar super >poderes ao usuário comum perigosas e que só devem ser usadas se nada mais >puder ser feito. > >No meu caso, uso o binário que citei, pq temos uma rede totalmente >heterogênea, que tem servidor de tudo qto é sabor de UNIX, LINUX e BSD e os >UNIXes que conheço não têm sudo. > >Abração, >Julio >:wq > > >Em 05/07/07, mop escreveu: >> >> Mhayk: >> Pelo que entendi você criou um binário apenas para poder chamar o >> shellscript >> como root. >> Para coisas como essa, já há algum tempo, mudei a minha filosofia e passei >> a usar o sudo para isso. Inclusive fica totalmente transparente para o >> usuário pois embuto o teste de user no próprio script. Se o usuário >> não for o esperado o sudo é chamado para rodar o script. Não me >> lembro de ter visto qualquer problema de herança ao chamar subshells na >> seqüência. >> >> >> Eis algumas das linhas do /etc/sudoers onde qualquer um vira root. >> ALL ALL=(root)NOPASSWD:\ >> /sh/mod,\ >> /sh/o,\ >> /sh/r,\ >> /sh/edit /home/pes/*,\ >> /sh/edit /home/pub/* >> >> >> Nenhum "mortal" lê o sudoers: >> [EMAIL PROTECTED]/tmp# ls -l /etc/sudoers >> -r--r- 1 root root 498 2007-06-16 18:31 /etc/sudoers >> >> >> Apenas cuido bem do script que será entregue ao sudo, limitando fortemente >> os parâmetros que são aceitos e eliminando toda a interatividade sempre >> que >> possível. >> >> >> >> Algumas linhas, de muitas, de um script dessa classe: >> _ >> #!/bin/bash >> [ `whoami` = root ] ||{ sudo $0 $*;exit;} >> >> MakNod(){ >> set -x >> #Exemplo: MakNod /sys/class/video4linux/video "0 1 2 3" ^BT878 tv video >> for x in $2;do >> >> >> case $1 in none) >> ;;a) >> depmod -a >> ;;mouse) >> $MPRO psmouse >> ;;radio) >> #DEV=`grep radio /sys/class/*/*/name|cut -d : -f 1` >> $MPRO -r bttv;$MPRO bttv card=38 radio=1 >> /sh/dev radio '' radio >> ;;serial) >> # NO KERNEL: >> ;;cam) >> # CAMERA DIGITAL COMO >> ;;sound) >> >> ;;tv) >> # placa Phoebe TV Master + FM: /etc/X/xawtvrc >> ;; >> *) >> echo "Uso: $0 <$( >> grep '^;;' /sh/mod|grep ')' |tr -d ';)'|tr ' >' '|' >> )> [-r]" >> esac >> >> >> >> >> >> Espero que tenha alguma utilidade! >> Tio google, indexe para a posteridade! :) >> HiAll: comentários são sempre bem vindos > > >-- >Abraços, >Julio >http://www.julioneves.com - Um livro sobre Bash completo e on-line >:wq - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Leitor de buffer do gpm
O problema é informação. Não tenho idéia do ponto de memória onde esse registro fica e, embora o gpm venha com algumas ferramentas binárias, não percebi nenhuma que possa receber um comando via shell e retornar o conteúdo do buffer (área de transferência) quando o X não está rodando e fica claro que existe um, pois copy'n paste funciona, e muito bem. Estou quase 100% do tempo com o X ativo então o xclip atende bem, apenas gostaria disso disponível sempre, além do que, procuro ter todos os recursos disponíveis, o tempo todo, e com a forma de acesso exatamente igual, independentemente de estar em term ou xterm. Grato pela dica. -- >From: "Julio C. Neves" >Date: Wed, 4 Jul 2007 09:52:32 -0300 > >Não conheço o gpm e nem sei o que ele faz, mas me parece que o uso named >pipes (e isso está muito bem explicado no Papo de Botequim) é o que vc >precisa. Caso isso não atenda, que tal os prgs se falarem por sockets? > >Abração, >Julio >:wq > > >Em 03/07/07, mop <> escreveu: >> >> Preciso passar o conteúdo do buffer do gpm (mouse interface caractere) via >> pipe para outro programa. No script uso xclip quando o X está rodando, mas >> na console (modo texto) ainda não descobri que programa faz isso. Tem de >> ser feito pelo script, sem interação humana, ou seja, qualquer ato manual >> de colar em algum lugar não serve. >> >> Qualquer dica é bem vinda. > > >-- >Abraços, >Julio >http://www.julioneves.com - Um livro sobre Bash completo e on-line >:wq - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
OFF-TOPIC Re: [shell-script] Re: Problemas com a propagação de permissão...
PessoALL, o Reinaldo me passou gentilmente em PVT um alerta de segurança sobre um post que fiz nesta thread. Felizmente a máquina de onde tirei isso é de uso pessoal exclusivo, mas se não fosse, não tenho idéia se notaria esse detalhe e quanto tempo levaria para tanto. Como, pela situação envolvida, vejo que a divulgação desse bug não pode prejudicar a coletividade, tomo a liberdade de publicar a informação, já que isto mais pode ajudar que prejudicar. Reinaldo Carvalho, pela iniciativa, Muito Obrigado! PS Uma forma que imagino para contornar seria o edit (que é um script) copiar o arquivo como root para uma area reservada de um user adequado, mudar o owner do arquivo para esse, chavear para o tal user e abrir o editor. Os poderes seriam os do tal, então. Uma vez saído do editor refaz o processo de forma inversa, preferencialmente com um mv ao inves de cp para salvar na origem. Fica bem claro aqui que o script tem de ser confiável para evitar possíveis desvios imprevistos. Outra forma seria limitar no sudoers por user ou group o acesso a esse "edit", mas isso mudaria a filosofia original. -- >Date: Thu, 5 Jul 2007 11:27:23 -0300 >From: "Reinaldo Carvalho" > >mop, você atentou que mesmo a restrição "/sh/edit /home/pub/*" não >impede que o usuário abra outros arquivos do filesystem depois que o >editor esteja em uso? > >Com o vi, bastaria dar um "e: /etc/shadow", por exemplo. > > >-- >Reinaldo Carvalho - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Ajuda em script para separar arquivo binario de script
Experimente assim: if [ "$tipo" = Bourne ]
Re: [shell-script] Ajuda em script para separar arquivo binario de script
Olhei por alto, o único problema que notei é que você emendou tudo colocando um única string no if. Você fez isto: [ "$tipo"=="Bourne" ] Quando deveria ter feito isto: if [ "$tipo" == "Bourne" ] Repare que tem de existir: string1 espaco comparador espaço string2. Recomendo que acima do seu if escreva simplesmente> echo === if [ "$tipo" == "Bourne" ] E veja o que será escrito na execução. Sua comparação é muito limitada e somente deverá pegar um tipo de shell. -- >From: "Salviano A. =?utf-8?q?Le=C3=A3o?=" <> >Date: Tue, 10 Jul 2007 22:52:37 -0300 > >Em Ter 10 Jul 2007, mop escreveu: >> if [ "$tipo" = Bourne ] > >Tentei, entretanto, ele problema persiste. É como >se não houvesse o if > > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Ajuda em script para separar arquivo binario de script
Como esta é uma lista de shell não custa reforçar, mas não pesquisei, vai no "intuitômetro" da minha experiência, exclusivamente com bash: 1. -eq é para comparar números exclusivamente 2. [ ${tipo} = "Bourne" ] somente deve ser usado quando a variável tipo não puder ser vazia ou contendo espaços, caso contrário haverá erro. Não há nenhuma necessidade de aspas nessa string FIXA E SEM ESPAÇOS à direita 3. [ "${tipo}" = Bourne ] a forma mais econômica é essa, ou melhor, sem as chaves, que neste caso, não vejo necessidade delas, ja que a variável tipo não está em meio a uma string onde o shell não teria como identificá-la, como em: echo abc${tipo}123 4. Para prevenir o vazio à esquerda do comparador costumo fazer: [ "$tipo" = Bourne ] ou [ _$tipo = _Bourne ] A segunda solução não serve caso $tipo possa conter espaços, por exemplo, tipo='shell script', quer dizer, o mais garantido é a opção com aspas. Se tipo nunca contiver espaços e nunca for vazio é possível simplificar para [ $tipo = Algo ] Em resumo, ratificando, a solução 100%, que cobre todos os casos com strings é: [ "$tipo" = Algo ] Como o que está à direita neste caso é fixo, na hora que se escreve já é possível saber se são necessárias aspas ou não. Não é preciso um script para experimentar isso. Basta a linha de comando do shell: shell-prompt> tipo="1 2 3"; [ "$tipo" = 2 ]&&echo igual||echo diferente Daí é só brincar com as possibilidades, com um mínimo de trabalho, usando a magnífica tecla seta para cima. (don't be root :) Não esquecer de fazer "tipo" vazio, com espaços somente, com espaços e caracteres, etc. Pode setar na linha de comando: set -x Para o shell mostrar visualmente as linhas de comando que está executando. Para retornar ao normal: set +x É isso, espero que os novatos aproveitem. É muito bacana brincar com um shell a la "unix". Não mostrem para as crianças, pois poderão achar muito mais legal que brincar de clique-clique e ficar viciadas. :) PS Isto pode não valer inteiramente em outro shell - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Ajuda em script para separar arquivo binario de script
Gostei do teste São Tomé numérico. :) Apenas diria que sob teste não há atribuição, trata-se apenas de uma string com um = no meio. Segundo São Bash: [EMAIL PROTECTED]/$ bash --version GNU bash, version 3.2.0(1)-release (i686-pc-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. [EMAIL PROTECTED]/$ [ ];echo $?;[ 0 ];echo $?;[ = ];echo $?;[ a=p ];echo $?;echo a=$a 1 0 0 0 a= [EMAIL PROTECTED]/$ Legal essa opção em linha para a turma brincar rapidinho. -- >From: "Julio C. Neves" >Date: Wed, 11 Jul 2007 16:51:42 -0300 > >João e Salviano, >o cmd test com a opção -eq é usada para teste numérico e o sinal de igual e >usado para comparações ascii. Veja: >Prompt> [ 01 = 1 ]; echo $? >1 >Prompt> [ 01 -eq 1 ]; echo $? >0 > >Devemos tb levar em consideração que o shell interpreta duas cadeias de >caracteres com um sinal de igual separando as duas e sem nenhum espaço em >branco como uma atribuição. Como toda atribuição volta verdaderiro, veja o >que acontece: > >Prompt> tipo=Julio >Prompt> [ $tipo=Salviano ]; echo $? >0 >Prompt> [ $tipo = Salviano ]; echo $? >1 > >Abraços, >Julio >:wq > > > >Em 11/07/07, mop >> >> Como esta é uma lista de shell não custa reforçar, mas não pesquisei, vai >> no >> "intuitômetro" da minha experiência, exclusivamente com bash: >> >> 1. -eq é para comparar números exclusivamente >> >> 2. [ ${tipo} = "Bourne" ] somente deve ser usado quando a variável tipo >> não >> puder ser vazia ou contendo espaços, caso contrário haverá erro. Não há >> nenhuma >> necessidade de aspas nessa string FIXA E SEM ESPAÇOS à direita >> >> 3. [ "${tipo}" = Bourne ] a forma mais econômica é essa, ou melhor, sem as >> chaves, que neste caso, não vejo necessidade delas, ja que a variável tipo >> não está em meio a uma string onde o shell não teria como identificá-la, >> como em: echo abc${tipo}123 >> >> 4. Para prevenir o vazio à esquerda do comparador costumo fazer: >> [ "$tipo" = Bourne ] ou [ _$tipo = _Bourne ] >> >> A segunda solução não serve caso $tipo possa conter espaços, por exemplo, >> tipo='shell script', quer dizer, o mais garantido é a opção com aspas. Se >> tipo nunca contiver espaços e nunca for vazio é possível simplificar para >> [ $tipo = Algo ] >> Em resumo, ratificando, a solução 100%, que cobre todos os casos com >> strings >> é: >> [ "$tipo" = Algo ] >> Como o que está à direita neste caso é fixo, na hora que se escreve já é >> possível saber se são necessárias aspas ou não. >> >> Não é preciso um script para experimentar isso. Basta a linha de comando >> do >> shell: >> shell-prompt> tipo="1 2 3"; [ "$tipo" = 2 ]&&echo igual||echo diferente >> >> Daí é só brincar com as possibilidades, com um mínimo de trabalho, usando >> a >> magnífica tecla seta para cima. (don't be root :) >> Não esquecer de fazer "tipo" vazio, com espaços somente, com espaços e >> caracteres, etc. >> >> Pode setar na linha de comando: >> set -x >> Para o shell mostrar visualmente as linhas de comando que está executando. >> Para retornar ao normal: >> set +x >> >> É isso, espero que os novatos aproveitem. >> É muito bacana brincar com um shell a la "unix". >> Não mostrem para as crianças, pois poderão achar muito mais legal que >> brincar >> de clique-clique e ficar viciadas. :) >> >> PS >> Isto pode não valer inteiramente em outro shell > > >-- >Abraços, >Julio >http://www.julioneves.com - Um livro sobre Bash completo e on-line >:wq - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Conversão de Bases em Bash
Ótimas dicas, apenas acrescentaria que, pelo menos no bash, as bases não precisam ser exclusivamente potências inteiras de 2. [EMAIL PROTECTED]/tmp$ n=R1s; for b in `seq 56 99`;do echo n=$n bd=$b vd=$[$b#$n];done n=R1s bd=56 vd=166292 n=R1s bd=57 vd=172282 n=R1s bd=58 vd=178378 n=R1s bd=59 vd=184580 n=R1s bd=60 vd=190888 n=R1s bd=61 vd=197302 n=R1s bd=62 vd=203822 n=R1s bd=63 vd=210448 n=R1s bd=64 vd=217180 bash: 65#R1s: invalid arithmetic base (error token is "65#R1s") [EMAIL PROTECTED]/tmp$ Obs.: colunas 2 e 3 com valores em decimal: - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Separar campos contidos numa linha
Veja se não há delimitadores do tipo que no copy'n paste com mouse podem ir embora. Talvez não haja delimitadores pois a posição dos campos é fixa na linha o que acho ser bem mais provável. Dê uma olhada nas várias linhas e veja se não está tudo devidamente alinhado. É assim que se aprende solidamente, fazendo coisas de verdade para resolver problemas reais do dia a dia. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Redimensionando fotos e modificando a resolução rapidinho
Nessa linha vi, já faz tempo, um script que gerava uma lista html e mais algumas cositas que não me recordo. Gosto de agrupar esses achados por tópico pois um dia ao me envolver com o tema costumam ser muito úteis. O nome do scrit é fotos: http://planeta.dyndns.org/scripts/index.htm -- >From: "voyeg3r" >Date: Wed, 11 Jul 2007 14:17:55 - > >Quando são muitas fotos o jeito é um script, não é mesmo? > >#!/bin/bash ># Script para redimensionar e modificar ># a qualidade de fotos ># ># Agradecimentos: JFMitre ># http://jfmitre.blogspot.com/2006/05/imagemagick-convert.html > ># Renomeando as fotos para tirar os espaços >for i in *.jpg; do mv "$i" `echo $i | tr ' ' '_'`; done > >for i in *.jpg; do >convert -quality 70 -resize 30% $i $i-70.jpg; >done - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Proteger instalação do HD
Veja hdset em: http://planeta.dyndns.org/scripts/ A finalidade parece ser de direcionamento da inicialização. Se a finalidade é impedir a clonagem, acho difícil fazer alguma coisa, mesmo a nível de kernel. É preciso colocar a checagem no trabalho intelectual, que é a única coisa exclusiva, não obtenível em outro lugar, todo o resto um adoslescente com um cd e um pouco de conhecimento contornará, ou subtituirá por aqruivos padrão. Além disso, precisará de criptografia, pois modificar um binário com um editor hexa também é fácil, sendo apenas a localização do ponto a questão mais trabalhosa. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Quantidade Caracteres em variavel
LEN=5 var=$1 [ ${#var} -le $LEN ]&&[ -z "${var//[0-9]}" ]||{ echo erro;exit 1;} while [ ${#var} -lt $LEN ];do var=0$var;done echo "var=$var="
Re: [shell-script] return 0
Modifiquei, está auto explicativo: teste() { printf a echo -n B return 1 } VAR=$(teste);echo \$?=$? echo VAR=$VAR;echo \$?=$? - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] return 0
O tiago já detalhou o restorno efetivamente obtido, estou apenas respondendo para retirar meu email da mensagem.:) Reforçando, o que era desejado na questão original deve ser obtido com VAR=$?, pois o shell, a cada comando seta um byte (decimal 0 a 255), o status code, que é legível com um simples "?" como nome de variável na linguagem dele com o mundo externo. -- >From: "Tiago Barcellos Peczenyj" >Date: Wed, 25 Jul 2007 14:02:27 -0300 > >Reforçando > >o return em uma função shell é como um exit -- ela modifica a variavel >$? para informar se houve um erro, por exemplo. > >quando vc faz > >VARIAVEL=$(comando) > >tudo o que o comando enviar para a stdin (via echo, print, por >exemplo) será atribuido à variavel de ambiente. > >On 7/25/07, mop wrote: >> Modifiquei, está auto explicativo: >> >> teste() { >> printf a >> echo -n B >> return 1 >> } >> >> VAR=$(teste);echo \$?=$? >> >> echo VAR=$VAR;echo \$?=$? >> >> >> >> - >> Esta lista não admite a abordagem de outras liguagens de programação, como >> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio >> aviso. >> - >> Sair da lista: [EMAIL PROTECTED] >> - >> Esta lista é moderada de acordo com o previsto em >> http://www.listas-discussao.cjb.net >> - >> Servidor Newsgroup da lista: news.gmane.org >> Grupo: gmane.org.user-groups.programming.shell.brazil >> >> >> Links do Yahoo! Grupos >> >> >> > > >-- >Tiago B Peczenyj >Linux User #405772 > >http://peczenyj.blogspot.com/ > - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] return 0
452. version=`get_gtk_file_ver "$ifile"` Pega versão arquivo bibliteca instalada. Se não achar, com certeza: version="" e $? != 0 Ou seja na sequencia a condição parece verdadeira. if [ $? -ne 0 ]; then continue fi Solução, instalar as dependências necessárias; isso costuma ser checado adequadamente pelos scripts "configure" PS Estou quebrando a thread no email, ela está publicamente disponível no endereço: http://br.groups.yahoo.com/group/shell-script/messages - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] return 0
Valeu! :| http://br.groups.yahoo.com/group/shell-script/message/23356?var=0 -- >From: "Tiago Barcellos Peczenyj" <[EMAIL PROTECTED]> >Date: Wed, 25 Jul 2007 15:19:18 -0300 > >> >respondendo >> > para retirar meu email da mensagem.:) >> >
Re: [shell-script] arquivo temporário virtual
"Appendar" as saídas parciais em uma variável me parece o que você precisa. Veja: [EMAIL PROTECTED]/tmp$ V= [EMAIL PROTECTED]/tmp$ V="$V`echo -e 'a\nb\nc\nd'|grep c`"$'\n' [EMAIL PROTECTED]/tmp$ V="$V`echo -e '1\n2\n3\n4'|grep 2`"$'\n' [EMAIL PROTECTED]/tmp$ echo -n "$V" c 2 [EMAIL PROTECTED]/tmp$ echo -n "$V"|xxd 000: 630a 320ac.2. [EMAIL PROTECTED]/tmp$ echo -n "$V"|grep c c [EMAIL PROTECTED]/tmp$ Boa sorte! - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Cópia remota compactada
No sender: faucet $PORT --once --out --verbose tar cvf - $* No receiver: hose $IP $PORT --in tar xfv - faucet e hose são do netpipes. Alguns exemplos em http://planeta.dyndns.org/unix/exemplos.txt Como pacote slack é simplesmente um tar.gz: http://packages.slackware.it/search.php?v=current&t=1&q=netpipes Se preferir pode experimentar com o nc (netcat) - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] stdin + read + pipe = ???
Exprimente o comportamento do sh com estes fds no install: for f in in out err do eval "read -p $f: $f< /dev/std$f;echo $f=\$$f" done Que linhazinha amarranda essa do usuário hein!? E o install, também não pode mexer? ;) - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: While e as condições
Realmente desaconselho o uso do $?, a menos que você saiba muito bem o que está fazendo, pois ele muda a toda hora. Basta executar echo e pronto, ele já mudou, embora o valor possa ser igual ao anterior, lógico. Até por manutenção futura isso deve ser evitado nesse ponto onde foi colocado. Pegue o valor do status exatamente no ponto que deseja e armazene, por exemplo, Y=$? Experimente, para não perder tempo, um loop test simples na linha de comando: Y=0;Xx=2; while [ $Y$Xx -lt 3 ];do read -p _$Y$Xx -t 1;done Teste seu universo, quando ok, é só passar para o script. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: Res: Res: [shell-script] Re: While e as condiç
Devido à insistência de não dizer o erro que o script está executando (em relação à espectativa, já li o que você quer), não li o script, mas usando o find notei que. Você seta Yy antes de entrar no loop e também dentro dele. Ok Você seta Xx antes de entrar no loop e também dentro dele. Ok Este if [ "$Yy" -ne 0 ]; é dispensável, o while já está cuidando disso. Parece-me que já "chutei" a sua solução no email anterior. Como parece que que ele não recebeu crédito, presenteio-o com uma linha para você colar no prompt do shell e simular o comportamento do script manualmente, com todos os pontos dinâmicos que detetei com o find. Não esqueça de informar o Yy quando pedido, se não, é claro que o shell dará erro. Yy=1;Xx=1;while [ $Yy -ne 0 -a $Xx -le 3 ];do read -p Xx=$[Xx++],Yy=$Yy,Yy: Yy;done Vi msmtp em vários pontos. A menos que seu script demore muito, não era mais prático appendar cada falha em uma variável e, ao final de todo o processo apenas eviar um relatório geral, caso a variável não estivesse vazia. Como vi que tem ping retornando Cs, já pensou em pegar o tempo ao invés, e filtar para tempo vazio ou maior que ??, isso poderia mostrar problemas de lentidão também. Desculpe "viajar", mas aquele loop estava muito chato. :) - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: Res: [shell-script] Re: While e as condições
Pôxa, você podia ser bacana e dizer qual o problema. Vou chutar: Lembre sempre de resetar o Yy: Yy=1 while [ $Yy -ne 0 -a $Xx -le 3 ];do Obs.: -o = OR -a = AND Imagino que seja um AND que você quer... Não analisei o script. -- >From: pablo oliveira > >Bom galera >o script ficou assim com as sugestões, mas ainda não funciona como quero - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Seq literal
No bash isto deve resolver: echo {a..z} - >O seq só aceita números reais como parâmetros de início e fim de >sequência. Eu preciso de algo que me dê a sequencia [a..z]. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Re: Reparem na sutileza destes dois exemplo ...
Legal seria mostrar como enviar o stderr, exclusivamente (sem o stdout), para o grep, no bash, sem usar um programa para redirecionamento adicional. -- >eh pq nao eh possivel 'capturar' a saida do comando, dpkg, pois ele envia >pelo stderr, >para tanto, conforme mostrei em um dos topicos antigos, duplicando-se a >saida usando se o stdout >como base, temos uma captura perfeita, ou seja, passa pelo pipe.
Re: [shell-script] Criar tabela html
Por certo sua questão é HTML! Se não, mostre o resultado final desejado (código em html), lembre que interpretação e análise de html foge ao escopo da lista. Se desejar mostrar sinteticamente o já que obteve, mal não deve fazer. -- >Fiz um script para listar o conteudo de uma pasta em links html, >funcionou, porem todos links ficam um por linha, e eu gostaria que >ficassem em forma de tabela- mais de um link por linha - entao >gostaria de saber como fazer para pegar o resultado do comando 'ls -C >' e tranformar em uma tabela html,sendo que cada arquivo seja um link >para o mesmo. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Criar tabela html
Tentei rodar o script, mas o que é $1? Tentei faze-lo a saída do ls -C, mas parece que não é isso. OFF Você falou em links, não vi link nenhum. Como estava difícil rabisquei algo (sem links), apenas formatação. Se precisar link terá de tratar por célula (arq/dir). Já pensou em fazer com e fonte de largura fixa? /OFF Espero que te sirva de algo. É só rodar no diretorio desejado. Para gerar arquivo: script >/tmp/z.htm COL=80 echo -n "" /bin/ls -C|while read -n $COL l;do [ "${c:10:1}" = 7 ]&&c=' bgcolor=#88CCFF'||c=' bgcolor=#77FFCC' l=" `echo -n $l`" l="${l// /}" echo -n "${l/<\/td>/}" done echo -n "" -- >> A minha questao é Shell Script mesmo.. e atendendo seu pedido, >mostro o script que fiz, porem como falei a cima.. ele cria apenas um >link por linha e eu quero he que fique igual ao resultado do comando >'ls -C'. Se alguem poder ajudar, agradeço. > >Este é o scritp : > >#!/bin/bash >#cria tabela htm > >n=$1 > >if [ $# -ne 1 ] >then >echo >echo "Digite o nome da pagina" >echo >exit 1 >fi > >i=0 >while read line >do >i=$((i+1)) >if [ "$((i%2))" == "0" ] >then >echo "" >else >echo "" >fi >echo $line > >done < $n > ${n}b > >#insere cabeçalho html no index.html >echo " " > index.html >echo "" >> >index.html >#pasando as tags da tabela para o index >cat ${n}b >> index.html ># fechando as tags >echo "" >> index.html >echo >echo "Index pronto" - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] gravar um log de tudo que rola no terminal
Procure a string "conteudo da tela de um terminal" em http://planeta.dyndns.org/unix/exemplos.txt É pelo menos um ponto de partida, caso o terminal desejado seja um tty. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Expressões regulares usando SED (novo problema)
Olá Miguel, tenho acompanhado o papo e estais a falar sempre em sed. Bem eu não sei nada sobre ele, e só o tenho usado em último caso. Quanto ao problema que estás a colocar eu resolveria simplesmente com: mount|grep ' / '|cut -d' ' -f1 A menos que eu me engane só deve existir um ponto de montagem "/" que deve ser o primeiro a nascer e o último a morrer. Considerando isto ainda é possível fazer em puro shell com: readhttp://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Redirecionar erro na tela
Outro dia precisei achar o primeiro canal disponível em uma hierarquia que defini. Não lembro bem do código, mas lá tinha algo parecido com: ifconfig|grep -m1 -A1 ^ppp|tail -n1|tr -s ' ' :|cut -d: -f4 que definiria, com porta e ip, uma ação sobre o firewall de um portátil. Parece que você não quer o ip, nem testar se existe rota ou resolução de nomes, então acho que poderia simplificar para: ifconfig|grep -q -m1 ^ppp&&echo está OK >&2 O que acho que não seria legal é chamar novamente o ifconfig em seguida para pegar algo que poderia ter sido obtido em um único porcesso. Desculpe se perdi algo na thread, li rapidamente. Naquilo que fiz talvez tivesse todos esses pipes, pois costumo tratar variáveis em shell, uma vez que elas chegam a uma única linha. Assim, de improviso, mandei o ip pelos tubos mesmo. :) Como li algo sobre saída em stderr também, veja se não quer algo como ifconfig ^pp 2>/dev/null -- >From: "bossonaroesao06" >Date: Wed, 07 Nov 2007 16:45:19 - > >Ops.. >Nao deu nao... >Quando eu redireciono a saida dessa forma, ele nao coloca o valor >dentro da variavel. Entao sempre que eu for testar a variavel ela vai >estar vazia ja que a saida do ifconfig foi redirecionada. > >Alguem pode ajudar a resolver isso?? >Obrigado - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Variaveis Variaveis ${${var}}
Opa Tiago, não uso esse shell, mas ao velho estilo São Tomé resolvi ver o que a versão pré-jurássica que tenho aqui faria. [EMAIL PROTECTED]/tmp$ ksh [033]0;[EMAIL PROTECTED]:[EMAIL PROTECTED] PS1=??$PWD/?? ??/tmp/??A="alguma mensagem" ??/tmp/??B=A ??/tmp/??eval echo \$$B alguma mensagem ??/tmp/??$0 --version version sh (AT&T Labs Research) 1993-12-28 o+ ??/tmp/??ls -l $0 ls: cannot access ksh: No such file or directory ??/tmp/??ls -l `which $0` -rwxr-xr-x 1 root bin 865756 2004-02-15 05:58 /bin/ksh ??/tmp/??exit [EMAIL PROTECTED]/tmp$ Como não uso esse shell, apenas acabei de checar o slack current. =ksh93-2007_03_28-i486-2 in slackware/ap Meu ksh :) está atualizado! Não sei se este relato acrescenta algo, mas detalhei como pude. -- >From: "Tiago Barcellos Peczenyj" >Date: Wed, 7 Nov 2007 17:45:00 -0200 > >Imaginemos duas variaveis: > >A="alguma mensagem" >B=A > >É facil acessar o conteúdo de cada uma delas: > >$ echo $A >alguma mensagem > >$ echo $B >A > >Agora, e se eu quisesse acessar o valor de uma variavel através do >conteúdo de outra? > >variavel B tem o conteudo A. >variavel A, por sua vez, tem outro conteudo. > >Eu poderia utilizar eval pra conseguir esse comportamento > >$ eval echo \$$B >alguma mensagem > >ou então utilizar a expansão ${!Variavel} > >$ echo ${!B} >alguma mensagem > >Funciona no Bash e deveria funcionar o Ksh (ai deveria entrar um tal >de nameref pra ajudar mas não consegui implementar). > >fica a dica. >-- >Tiago B Peczenyj >Linux User #405772 > >http://peczenyj.blogspot.com/ >"what does not kill us makes us stronger" - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Variaveis Variaveis ${${var}}
Minha resposta anterior estava parcialmente incorreta. O repósitorio local está atualizado, mas o pacote instalado não era o último. Deve ser um bem antigo, nem esta na lista de pacotes instalados. Como disse eu não o uso, scripts configure ou make, sei lá... Bem, descompactei o último no diretório abaixo e rodei desse ponto, sem instalar, é só um tar x... :) [EMAIL PROTECTED]/tmp/test$ ls -l total 12 drwxr-xr-x 2 web ppp 4096 2007-04-15 20:32 bin/ drwxr-xr-x 2 web ppp 4096 2007-04-15 20:32 install/ drwxr-xr-x 5 web ppp 4096 2007-04-15 20:32 usr/ [EMAIL PROTECTED]/tmp/test$ ls -ld bin/* -rwxr-xr-x 1 web ppp 977876 2007-04-15 20:32 bin/ksh.new* [EMAIL PROTECTED]/tmp/test$ md5sum bin/* 8caae608a57ccff2dcea53946c8518ca bin/ksh.new [EMAIL PROTECTED]/tmp/test$ bin/* [033]0;[EMAIL PROTECTED]:[EMAIL PROTECTED] PS1=':) ' :) A="alguma mensagem" :) B=A :) eval echo \$$B alguma mensagem :) echo $0 bin/ksh.new :) echo $PWD /tmp/test :) $0 --version version sh (AT&T Research) 1993-12-28 s+ :) exit [EMAIL PROTECTED]/tmp/test$ --- Desculpem a ~dupla postagem, mas tinha de reparar a minha falha! - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Script para snmpd - Tabela de Partições
>Em suma queria retornar os dados da posição digamos da coluna System >a linha /dev/sda8, que retornaria o valor Linux. >Não sei se fui claro o suficiente. Sugestões serão muito bem vindas. - Os outros eu não sei, mas eu não entendi nada. Ainda assim vou tentar ajudar. Em SYS estou guardando a partição montada como "/". Na linha seguinte estou listando o disco correspondente e filtrando aquela partição. Tirando tudo e mostrando a última palavra. Brinque aí e veja se acende alguma luz. SYS=$(mount|grep ' / '|cut -d' ' -f1) fdisk -l ${SYS//[0-9]}|grep $SYS|tr -s ' '|cut -d' ' -f6 Para ter um melhor retorno da lista sugiro que simplifique e clarifique a questão. Boa sorte! - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] sair do comando tail de volta para script
Deve haver um loop no seu script. Se o ^C te atende, experimente colocar antes: trap continue 2 3 On 11/27/07, Everton Goularth <[EMAIL PROTECTED]> wrote: > Bom dia lista, > > estou enfrentando uma dificuldade que após muita pesquisa ainda não > consegui resolver. Estou configurando um shell script onde uma das > opcoes que o usuario pode escolher é para visualizar um arquivo de log > em tempo real, estou usando um "tail -f" para tal, porem nao achei uma > saida na qual o usuario pudesse cancelar a visualização do arquivo e > voltar para o menu principal, ou seja, não consigo que o script execute > nenhum comando depois do tail -f, quando o usuario pressiona < ctrl + c > > o script termina. A parte correspondente do email é a seguinte: > > tail -v /var/log/arquivo.log | grep "string" | sed > 's/string1/string2/'| sed 's/string3/string3'| sed 's/string4/string4/' > echo > echo "Visualização de log finalizada" > clear > script.sh > > onde apos a finalização do comando tail gostaria de executar o script > novamente. > > Alguem tem alguma sugestão? qualquer dica é bem vinda... > Obrigado pela oportunidade > > Everton Goularth > > > ___ > Yahoo! Mail - Sempre a melhor opção para você! > Experimente já e veja as novidades. > http://br.yahoo.com/mailbeta/tudonovo/ > > >
Re: [shell-script] sair do comando tail de volta para script
Desculpe(m), eu quis dizer: "antes do loop", no script -- > Deve haver um loop no seu script. Se o ^C te atende, experimente colocar > antes: > > trap continue 2 3
[shell-script] Re: trabalhando com linhas de arquivo ( e o sed -i ?)
Parece-me que o SED é bem tolerado como assunto na lista. :) Não lembro de uma forma de fazer uma substituição de string no local físico com as ferramentas comumente citadas aqui. Pelo que entedi o sed com a opção -i faria isso. "ls -i" mostra o inode do arquivo. Obs.: os resultados abaixo são em uma simples partição ext2, blocos de 4k. Qual a explicação Do manual do sed: -i[suffix], --in-place[=suffix] edit files in place (makes backup if extension supplied) VERSAO: --- [EMAIL PROTECTED]/tmp# sed --version|grep ver GNU sed version 4.1.5 [EMAIL PROTECTED]/tmp# O SED: --- [EMAIL PROTECTED]/tmp$ cat a;ls -i a;sed -i 's/r/R/' a;cat a;ls -i a pqrst 578005 a pqRst 577986 a [EMAIL PROTECTED]/tmp$ passou o arquivo para outro local, testado várias vezes O SHELL -- [EMAIL PROTECTED]/tmp$ cat a;ls -i a;echo pqZst >a;cat a;ls -i a pqRst 577986 a pqZst 577986 a [EMAIL PROTECTED]/tmp$ O SHELL "appendando" -- [EMAIL PROTECTED]/tmp$ cat a;ls -i a;echo :pqZst >>a;cat a;ls -i a pqZst 577986 a pqZst :pqZst 577986 a [EMAIL PROTECTED]/tmp$ E viva o shell !!! Qual o programa indicado para fazer substituições no local físico? -- On 11/27/07, Flavio Junior > simples: > > [EMAIL PROTECTED] ~]# cat nada > teste1 > teste2 > teste3 > teste4 > teste5 > teste6 > teste7 > teste8 > [EMAIL PROTECTED] ~]# sed -i.bkp '/teste5/iNVA > LINHAAA' nada > [EMAIL PROTECTED] ~]# cat nada > teste1 > teste2 > teste3 > teste4 > NVA LINHAAA > teste5 > teste6 > teste7 > teste8 > [EMAIL PROTECTED] ~]# sed -i.bkp '/teste5/aNVA > LINHAAA' nada > [EMAIL PROTECTED] ~]# cat nada > teste1 > teste2 > teste3 > teste4 > NVA LINHAAA > teste5 > NVA LINHAAA > teste6 > teste7 > teste8 > [EMAIL PROTECTED] ~]#
Re: [shell-script] Re: trabalhando com linhas de arquivo ( e o sed -i ?)
Exatamente Flávio, o sed cria outro arquivo, só que isso fica invisível, ou transparente para o usuário, pois ele recebe tudo pronto, só que isso dependendo do caso pode não atender. Segui os seus passos e fui um pouco além. Ficou um pouco longo o relato, mas quero deixar aqui registrado para a posteridade. Segue abaixo da sua mensagem. Caso haja outras idéias, eu pelo menos, estou sempre interessado em aprender. -- >From: "Flavio Junior >Date: Tue, 27 Nov 2007 16:15:39 -0200 > >Hm.. > >Se eu entendi o que tu tentou demonstrar ali é que, o sed -i na real >cria uma nova entrada de diretorio no sistema de arquivos né ? > >O que gera um novo i-node. > >O proprio "vim" usa a tecnica no sed.. o que se mostrou mais rapido (o >sed) nos meus testes mesmo. Mas o "ed" (oh, o ed...) pode fazer o que >voce quer: > >[EMAIL PROTECTED] ~]# ls -i teste.txt; cat teste.txt >2097218 teste.txt >teste >[EMAIL PROTECTED] ~]# ed -s teste.txt <<< $'s/e/3/g >w >q' >[EMAIL PROTECTED] ~]# ls -i teste.txt; cat teste.txt >2097218 teste.txt >t3st3 >[EMAIL PROTECTED] ~]# vim +':s/3/e/g' +':wq' teste.txt >[EMAIL PROTECTED] ~]# ls -i teste.txt; cat teste.txt >2097220 teste.txt >teste >[EMAIL PROTECTED] ~]# > > >-- > > >Flávio do Carmo Júnior - CONCLUSAO: "ed" OK, arquivo binário e inode sedinode_tamanho__md5sum__ original___7551899541217849d2c502626e2595874681e4364fa alterado___75518995712 revertido__7551899541217849d2c502626e2595874681e4364fa Funcionou perfeitamente em um arquivo binário. Uma cópia do sed foi usada como cobaia para dilaceração. :) Subtituindo uma string por outra de tamanho diferente e na sequência revertendo o processo. Além da ótima postagem do Flavio Junior \o/, posteriormente olhei também esta página: http://www.cs.utk.edu/~cs300/Sed/lecture.html --- DETALHAMENTO DO TESTE COM O ed atenção: o programa aqui é o "ed", a cópia do sed é o arquivo manipulado = Não tinha o ed, tive de baixar da GNU, configure, make, e usei dalí mesmo. Copiando e examinando a vítima binária: [EMAIL PROTECTED]/tmp/ed-0.8$ cp -i /bin/sed . [EMAIL PROTECTED]/tmp/ed-0.8$ ls -li sed 755189 -rwxr-xr-x 1 web ppp 95412 2007-11-27 20:28 sed* [EMAIL PROTECTED]/tmp/ed-0.8$ md5 sed 17849d2c502626e2595874681e4364fa sed Criando a função subst, só para sentir a praticidade: subst str1 srt2 file [EMAIL PROTECTED]/tmp/ed-0.8$ \ subst(){ [ -e $3 ]&&/tmp/ed-0.8/ed -s $3<<<"1,\$s/$1/$2/g"$'\n'w;} = Listando a str1 (command) no arquivo: [EMAIL PROTECTED]/tmp/ed-0.8$ strings sed|grep command add the script to the commands to be executed add the contents of script-file to the commands to be executed specify the desired line-wrap length for the `l' command extra characters after command missing command command only uses one address unterminated `s' command unterminated `y' command multiple `p' options to `s' command multiple `g' options to `s' command multiple number options to `s' command number option to `s' command may not be zero strings for `y' command are different lengths unknown command: `%c' invalid reference \%d on `s' command's RHS Usando a função criada: [EMAIL PROTECTED]/tmp/ed-0.8$ subst command '0123456789ABCDEFGHIJKLMOP:)' sed Newline appended Inspecionando o resultado: [EMAIL PROTECTED]/tmp/ed-0.8$ strings sed|grep MOP add the script to the 0123456789ABCDEFGHIJKLMOP:)s to be execut ed add the contents of script-file to the 0123456789ABCDEFGHIJKLMO P:)s to be executed specify the desired line-wrap length for the `l' 0123456789ABCD EFGHIJKLMOP:) extra characters after 0123456789ABCDEFGHIJKLMOP:) missing 0123456789ABCDEFGHIJKLMOP:) 0123456789ABCDEFGHIJKLMOP:) only uses one address unterminated `s' 0123456789ABCDEFGHIJKLMOP:) unterminated `y' 0123456789ABCDEFGHIJKLMOP:) multiple `p' options to `s' 0123456789ABCDEFGHIJKLMOP:) multiple `g' options to `s' 0123456789ABCDEFGHIJKLMOP:) multiple number options to `s' 0123456789ABCDEFGHIJKLMOP:) number option to `s' 0123456789ABCDEFGHIJKLMOP:) may not be zero strings for `y' 0123456789ABCDEFGHIJKLMOP:) are different lengths unknown 0123456789ABCDEFGHIJKLMOP:): `%c' invalid reference \%d on `s' 0123456789ABCDEFGHIJKLMOP:)'s RHS [EMAIL PROTECTED]/tmp/ed-0.8$ ls -li sed 755189 -rwxr-xr-x 1 web ppp 95712 2007-11-27 20:30 sed* ==
Re: [shell-script] Script sai quando não devia
Realmente miguel, está muito complicado. Eu trataria assim: 1. Colocaria um "set -x" no início do script Ele vai encher tua tela, mas o que importa é achar o motivador da saída que estará ao final e você poderá navegar com Shift+PgUp para inspecionar 2. Se o anterior não resolver, fazer copia e reduzir a uma listagem de 2 programas apenas e achar o erro. Se não conseguir manda pra lista, que daí fica mais fácil, preferencialmente com uma pista melhor A técnica do "Jack" (londrino, se não me engano) é a melhor neste caso. --- On 11/27/07, miguelcm86 <[EMAIL PROTECTED]> wrote: > Boas pessoal > > Estou aqui com um problema e já dei voltas e voltas e não percebo o > que se passa... > > É o seguinte tenho um script que cria um menu para escolher programas > e depois instala-os automaticamente, o problema é que ele só instala > um e não instala os outros, sai logo do ciclo:
Re: [shell-script] Re: trabalhando com linhas de arquivo ( e o sed -i ?)
Fiz exatamente o mesmo que você, e depois: [EMAIL PROTECTED]/tmp$ xxd sed >sed.hx [EMAIL PROTECTED]/tmp$ xxd sed.alt2 >sed.alt2.hx [EMAIL PROTECTED]/tmp$ diff sed.hx sed.alt2.hx 5964c5964 < 00174b0: --- > 00174b0: 0a . [EMAIL PROTECTED]/tmp$ ls -l sed sed.alt2 -rwxr-xr-x 1 web ppp 95412 2007-11-28 00:52 sed* -rw-r--r-- 1 web ppp 95413 2007-11-28 00:53 sed.alt2 [EMAIL PROTECTED]/tmp$ tail -c4 sed|xxd 000: [EMAIL PROTECTED]/tmp$ tail -c4 sed.alt2|xxd 000: 000a Parece-me que apenas está sobrando um newline ao final. Incrível como uma coisa leva à outra. Esse é outro detalhe, não tenho uma forma definida para checar diferenças complexas em arquivos binários. Este pelo menos foi fácil, e naquele caso com o ed não foi necessário. On 11/27/07, Flavio Junior wrote: > lazlo:~# awk '{gsub(/command/,"agoraehminhavezFLAVIO"); print}' sed > sed.alt > lazlo:~# awk '{gsub(/agoraehminhavezFLAVIO/,"command"); print}' sed.alt > > sed.alt2 > Com awk o MD5 não bateu... talvez a forma que eu fiz não foi perfeita, > quem puder contribuir é bem vindo.
Re: [shell-script] Idiomas diferentes no shell e no crontab?
O pessoal já te deu a dica da causa. Para saber com certeza experimente colocar isto em algum ponto nesse escript: set>>/tmp/zzzebra Mas, atualmente eu para condições pontuais costumo setar a condição para comando exclusivamente. Justifico, às vezes o script é longo, pode estar filtrando e dicidindo em função de mensagens de erro, ou de saídas de programas/comandos e mudar a linguagem só por causa de um detalhe podem gerar outras falhas. Quando o caso é isolado, seto em linha, veja: [EMAIL PROTECTED]/tmp$ date;LANG=pt_BR date;date Thu Nov 29 16:38:04 hrV 2007 Qui Nov 29 16:38:04 hrV 2007 Thu Nov 29 16:38:04 hrV 2007 [EMAIL PROTECTED]/tmp$ --- Em 29/11/07, bossonaroesao06 escreveu: > > Quando eu executo um script "na mão" ele me retorna a data em > portugues mas se eu colocar ele pra ser executado na crontab ele > retorna a data em ingles. > Por que ocorre isso se o usuario da crontab é o mesmo do shell que eu > to executando? > > executado crontab: Thu Nov 29 13:37:01 BRST 2007 > executado na mão : Qui Nov 29 13:37:48 BRST 2007
[shell-script] Re: Script sai quando não devia
Está certíssimo, quando ele sai do script adode.sh ele sai do case. O case faz o que tiver na primeira entrada válida, nada mais. Se quiser diferente terá de usar elif, ou outro esquema, mas eu não recomendo. Por aquele script citado, agora ele já pode estar diferente, estava tudo ok, pois o case estava contido em um while ( nesse caso não precisa usar parenteses, não sei sé é assim que se denomina por aí :) e será chamado sucessivamente até que as linhas da variável "escolhas" acabem e o while termine. Quem encerra o script é o while, não o case. A única explicação para um encerramento prematuro é a instrução exit, explícitamente registrada ou atomatizada com um "set -e" (exit ao primeiro erro). O set -x mostrou isso. Aonde está aquele "cd ../.." seguido do "exit 0"? Foi ali que o script foi encerrado! Aliás vejo tudo cheio de zeros para voltas. Isso não é legal. Só deve ser feito em casos muuito excepcionais. Veja o return que eu deixei abaixo, se você não usar o subscript como source já vai dar erro. Para que o return? Se alí é o fim do script. Ah mas e se o retorno não for zero? O script chamador é que tem que decidir o que fazer ou se é para ignorar. O seu, pelo código, que olhei melhor agora, está ignorando, o que é muito correto para o que quer fazer. Apenas o usuário deve ficar ciente de falhas, mas o resto da instalação deveria continuar, acho. Eu, em alguns casos costumo checar um parâmetro passado em linha de comando para acionar um debug. Uma idéia bem simples, se na linha de comando tiver um "-d" faço dentro do script d=1, caso contrário a variável d não exite. Daí nos pontos que desejo ter um debug escrevo, por exemplo: [ $d ]&&echo x=$x ou absolutamente o que quiser ou chamo funções, ou... fica super fácil e não perturba quando não solicitada. Quero desligar aquele ponto de debug e manter os outros, só coloco um "#" antes. Será que aquele cd ../.. falhou? Acho que não, pois há um exit 0 depois. :) É o que me ocorre de momento, espero que ajude. Qualquer coisa se manifeste. Aaah, por que não coloca após cada subscript: st=$?;[ $d ]&&echo scriptx status=$st Pelo menos saberá se ele passou pelo ponto. :) Para improvisar rápido, nem faça o esquema do -d, doloca direto: echo scriptx status=$? Finalmente algo óbvio, se houver um exit em um subscript e ele for chamado como source, ou com um "ponto espaço, antes do nome" se tiver um exit o script chamador termina, pois é por ele que aquele código está sendo executado, e não em um subshell. É isso, agora não me ocorre mais nada. -- >From: "miguelcm86" >Criando a base de dados de etiquetas... >++ return 0 >+ read escolha >+ cd ../.. >+ exit 0 >Portanto eu seleccionei todas as opcções, mas ele ficou só pela >primeira que é o adobe. >no script do adode.sh só tem estas linhas: >- >place=/home/miguel/install/Option/Base/ ##neste caso isto não é para nada > >sudo aptitude -y install acroread acroread-plugins mozilla-acroread >acroread-escript > >return 0 >-- >usei o source e o return, mesmo assim ele quando saio, voltou ao >inicio do ciclo e fez o "read escolha", não percebo porquê não >continuo com a próxima palavra e finalizou o script. >Vejam o código que está na primeira mensagem e digam-me o que acham. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Script sai quando não devia
Limpei e deixei o essencial na sua mensagem abaixo. Sugiro que faça o mesmo se quiser que as pessoas leiam. Tudo o que ocorre dentro dos subscript não tem importância, a menos que a execução não retorne dele. Perfeito, o set -x fez o serviço. O que eu precisava saber está nestas duas linhas: >+ read escolha >+ cd ../.. Ou seja, o script sempre executou o read antes de sair, pelo menos nestes dois testes relatados. Já ficou bem mais fácil. Eu arriscaria dizer que há reads nesses scripts lendo a partir de fd0 (stdin) do MESMO terminal. Daí não interessa onde estão, nem se são executados em subshell ou como source. Retire o set -x, ele não vai mais ajudar, só atrapalhar. antes do while escreva: escolhas="$escolhas 1 2 3 4 5 6 7 8 9" # para ter mais entradas :) Não tenho outra idéia para teste a não ser insirindo imediatamente antes do "done": echo -ne "\n$escolhas\n\nexecutado: |$escolha| press enter";read<&2 Veja que estou usando um read dentro do loop, mas não estou lendo o fd0 (&0). Selecione todas as suas opções, quanto mais melhor. Cada vez que o script chegar ao final do conteúdo do loop imprimirá a variável usada e a lista. Se estiver com sorte deverá ver saltos durante a execução, ou seja o ponteiro do read está sendo avançado nos subscripts, acarretando saltos na lista das opções marcadas. A seguir substitua o while por for, acho que o IFS está ok: for escolha in $escolhas #echo "$escolhas" | while read escolha Reexecute. Não ponho minha mão no fogo pois a certeza não é 100%, mas eu arriscaria 99. Aconteceu o que você queria? Caso afirmativo estará confirmado, pode tentar verificar com: grep 'read ' * se existe o comando read nos seus subscripts, ou outros que eles chamem. Recentemente eu postei sobre isso, inclusive com exemplo lendo os 3 fds do shell, só que se não me engano o problema era exatamente o opstodo seu. Não seja imediatista, substituindo o "while" pelo "for" e pronto. Faça pelo menos a sequencia com a impressão da variável ou não fixará tão bem esses detalhes. Se der certo ainda economizou um tubo, o "|", além dos " ( ) ". :) -- >From: "miguelcm86" >+ read escolha >+ case $escolha in >+ . ./d4x.sh >++ place=/home/miguel/install/Option/Base/ >++ sudo aptitude -y install d4x >++ return 0 >+ read escolha >+ case $escolha in >+ . ./amule.sh >++ place=/home/miguel/install/Option/Base/ >++ sudo aptitude -y install amule >++ return 0 >+ read escolha >+ cd ../.. >+ exit 0 >-- >segundo teste só instalou um programa, aqui imprimi a lista que >seleccionei no xdialog: >+ echo 'Firestarter >AcetoneISO2 >IE4linux >Audacity >Kino >Thunderbird >Sunbird >Dia >K3b >Skype >KDE' >+ read escolha >+ case $escolha in >+ . ./firestarter.sh >++ place=/home/miguel/install/Option/Base/ >++ sudo aptitude -y install firestarter >++ return 0 >+ read escolha >+ cd ../.. >+ exit 0 >-- >isto por acaso já me tinha acontecido, uma hora dá uns poucos, outra >hora só dá alguns ou 1... - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Script sai quando não devia
IMPORTANTE: Achei melhor complementar, para ficar mais fácil ainda. Considero o assunto fds importante, independente do resultado na mensagem anterior. Saber usar recursos disponíveis, mais ainda, assim aproveitando a citação de passado que fiz, complemento com mais uma dica de uso genérico, mas cujo exemplo cabe no caso. Para achar algo que postei recentmente sobre file descriptors nesta lista pode usar recursos do yahoo, http://br.groups.yahoo.com/group/shell-script/msearch_adv colocando para autor mop2 e para mensagem a curta, mas rara, sequencia de consoantes fd Acredito que não haja maneira mais fácil de chegar ao post passado que citei na mensagem anterior. Ler ajuda, mas o importante é viver, sentir. :) - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Script sai quando não devia
Não tem o que agraceder, foi uma satisfação poder ajudar. Com certeza você achará muito sobre "file descriptor" nesta lista. Pedi para você filtrar por autor para chegar à mensagem específica que eu lembrava de ter postado algum tempo atrás. Tire o autor e provavelmente você deverá ter muitas telas com "fd". Embora saiba da existência desse recurso do yahoo não tenho experiência com ele. Terá que experimentar o quanto é responsivo com substrings e caracteres não alfabéticos. Para nós do shell, se ele não desprezar < > | & $ \ dentre outros, será uma ferramenta fenomenal e onde o sistema padrão de busca do google não poderia nos atender. O melhor lugar para começar a procurar sobre o que pediu é simplesmente via linha de comando, com: man bash Termos "sinônimos" para fds no shell, que me vêm à cabeça agora: fd0 stdin &0 "entrada padrão" :P fd1 stdout &1 fd2 stderr &2 echo 123 >zzz Acabei de redirecionar o fd1, default no terminal = ecran (acho que é isto) para ficheiro :) , e não tem nada da listinha acima. Diria que o maior indicador de redirecionamento é a presença de pelo menos um destes caras: < > | << <<< >> Mas veja, tudo isso acho que não teria ajudado naquele seu caso, onde nada foi REdirecionado. A leitura ocorria naturalmente, no fd padrão. Bem, o mais importante é que você retirou o read desse seu seletor, assim ele está liberado para ser usado nos subs. Quem cuida dos subs que lembre disso, dentro deles, nos subs2, etc., mas se não deixar um read preso em um loop não vai ter problema. Saudações. -- >From: "miguelcm86" >Date: Sun, 02 Dec 2007 22:17:19 - > >Sinceramente estive a pesquisar e não encontrei muita coisa sobre >"fd", aqui nos grupos só encontrei duas mensagens suas, e no google, >De facto nos sub scripts que chamava no aptitude ele recebe um >argumento "-y" que diz para todas as perguntas ser yes, acho que nesse >ponto, mesmo com este argumento "-y" ele deveria estar a ler o read e >recebia pelo tubo "|" o que estava em $escolhas. >Muito obrigado pela sua ajuda, só lhe pedia que se por acaso o fd >tiver alguma nome mais especifico, que a dizesse (assim como o "." de - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Re: Criticas sobre a lista (ADMINISTRATIVA)
Acho que o Fábio não está querendo ocultar email dos demais membros. Fiz esse reporte há muito tempo atrás, mas enviei para apenas um moderador e possivelmente a mensagem foi retida em algum filtro. O detalhe ocorre na publicação, pelo que levantei na terceira resposta à thread. Por isso nas minhas mensagens sempre retiro o que está abaixo, ou quando não, retiro o email da pessoa que estou respondendo e limpo o resto. Acho que todos que lembrarem poderiam fazer isso ao postar. ;) E se todos fizerem cada um só tem 1 vez, justamente o da pessoa a que está respondendo. Acabei de fazer um teste com advanced search do grupo, na mensagem: %40gmail Funciona, um dos resultados, onde o problema aparece claramente: http://br.groups.yahoo.com/group/shell-script/message/24589 Talvez o sistema do yahoo só corte os dois primeiros [EMAIL PROTECTED], não sei. Apesar disso, considero a publicação do conteúdo fundamental. Felizmente, tenho um email que parece mais um erro. :) Quando tiver um tempo vou ver se existe uma conta para geração dessa ocultação para quem tem email externo ao yahoo. Saudações. -- >From: Eriberto >Date: Mon, 3 Dec 2007 18:00:46 -0200 > >Fábio, o problema é a configuração do Yahoo. Veja: > >Exibição do e-mail:Permitir que os associados ocultem seus endereços de >e-mail das demais pessoas do grupo. >Seu grupo não poderá usar o recurso Enquetes. Associados que ocultam seus >endereços de e-mail do grupo não poderão enviar mensagens ao grupo via >e-mail. Se você selecionar esta opção, NÃO será possível alterá-la depois. >[]s > >Eriberto - www.eriberto.pro.br - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] SUID - Permissao Especial
Acho que esse lance do suid só funciona para executáveis binários. Talvez você possa usar o sudo. Eu acho que usaria inicialmente um compilador de script. No site http://www.datsi.fi.upm.es/~frosal/ o autor diponibiliza o pacote shc (script compiler). Basta descompactar e terá o shc. Coloque a chamada com senha no próprio script e daí você faz: shc -f seuScript Pronto, foi gerado um binário executável. Dai você poderia pensar em suid, mas acho desnecessário. Execute normalmente, mas usando o binário: seuScript... Para ficar mais tranquila pode tentar: grep senha seuScript para ver se há uma resposta positiva ou abrir em um editor de texto e dar um find. Tomara que venham outras sugestões, acho bem interessante essa questão de poder executar sem de forma alguma poder ler conteúdos sensíveis. Não tenho noção da reversibilidade disso ou do grau de segurança, mas acredito que para o seu caso atenda plenamente. Aliás o uso do shc poderia ser adicionalmente um "segredo" do dba. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] suprimir espaços
Para apagar todos os avanços de linha e espaços do arquivo: tr -d ' \n' < ope_isco_enviaTCO_20071212_181519.spool Colocando um new line ao final: echo `tr -d ' \n' < ope_isco_enviaTCO_20071212_181519.spool` - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] SUID - Permissao Especial
Luciana, acho que o Júlio já disse tudo, e com um simples make no dir do shc você deverá saber se é possível obter um executavel do compilador para o seu AIX de imediato. Outros compiladores possíveis: wzsh shell-lock shcomp ShellGuard mas provavelmente encontrará dificuldades de algum tipo em todos. ===OFF= Pode também tentar fazer um executável binário - prog.c #include char *script = "comandos para o shell"; main(){ int ret = system(script);} -- compilando em seu sistema Neste executável binário o comando não estará criptografado, mas acho que talvez consiga executá-lo em seu sistema com um arquivo com os atributos -x (ou x generalizado), já que não precisará ser lido por um interpretador. Aliás parece-me, era sua filosofia inicial. Caso venha a usar uma solução nessa linha, não esqueça de colocar sempre o path completo para o programa final, ou alguém coloca: PATH=~:$PATH e faz um script com o nome do seu programa alvo com: echo $* e daí... Aliás, se não houver efeitos negativos, começar com um PATH="" é um bom começo. Independente de tudo, acho que seria interessante você contribuir para a lista reportando os problemas e, principalmente, a solução adotada, já que vejo com freqüência a citação da plataforma aix nesta lista. A sua necessidade é, essencialmente, a mesma de muitas outras e, quem sabe, a solução aplicável em outras plataformas, linux ou não. Sucesso! -- >From: "Julio C. Neves" >Date: Fri, 7 Dec 2007 23:39:58 -0200 > >Olá Luciana, >não creio que este compilador exista, e caso exista provavelmente será >proprietário, assim como o AIX. Me lembro bem que te foram oferecidas >diversas soluções além destas e vc não disse pq elas não serviam. Se >dissesse, pode ser que pudéssemo contornar o problema. > >Eu não conheço este shc, mas se ele for livre, pegue o fonte e o recompile >no AIX usando o cc que aí sim, vc poderá compilar o seu script. > >Atenção: para não perder seu tempo, aproveite que o script já foi compilado >na sua casa faça o seguinte: > >strings /nome/do/executavel > >É provável que apareça o nome do usuário e sua senha. > >Feliz Natal >Julio > >Em 07/12/07, Luciana Cruz >> >> Pessoal, >> >> Outro dia postei meu problema e me foi sugerido a solução abaixo. Eu >> baixei o compilador e realmente funcionou, mas no Centos (que tenho em >> casa). O problema é que preciso fazer funcionar no AIX, venho tentando mas >> sem sucesso. Hoje fiz outro teste, compilei no meu micro e levei o binário >> para meu trabalho, mas não funcionou. Eu acredito que o problema esteja >> relacionado ao compilador, mas como eu não posso alterar nada no sistema >> operacional de lá, tipo o compilador, então gostaria de saber se há algum >> compilador de shell-script para AIX. >> >> Obrigada, >> >> Luciana - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Agir sobre informações de um processo geradas em tempo de execução .
Experimente usar o shell: 2>&1 rhythmbox -d|while read m;do [ "$m" == "${m/Opening file:/}" ]||\ echo -e '\a i agora, break ???';done
Re: [shell-script] Permissão em arquivos
Veja se aparecem os comandos desejados: find /dir -type d -exec echo chmod 755 {} \; Se ok, tire o echo. O outro type é f. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Como sinalizo que um parametor, lido pela entrada padrão, terminou?
Essa sua questão não ficou muito clara e nem percebo de imediato a aplicabilidade do exemplo. Normalmente os parâmetros são passados na própria linha de chamada do comando, que é finalizada com um return. Se for uma questão do Pssor acho que pode responder que se a entrada padrão vem do teclado poderia tentar finalizar segurando a tecla Ctrl e pressionando a tecla D. ;) É melhor você testar antes no sistema alvo. Para você não cair numa trap, não esqueça de listar as traps (com o comando trap) de olho em 17, SIGCHLD. Espero que alcance seu objetivo, ou se ficou alguma dúvida detalhe-a. Ok, eu posso ter me equivocado. ;) -- >From: "andre.andrade1" >Date: Fri, 14 Dec 2007 17:30:18 - > >Olá pessoal, > >Sou iniciante em shell e tenho uma duvida tosca...como eu sinalizo >à um comando que terminei de passar os parametros atraves da entrada >padrão? > >exemplo: >$ cat >arquivo.txt ># preciso sinalizar aqui que eu terminei de passar o parametro de >entrada na stdin - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Como sinalizo que um parametor, lido pela entrada padrão, terminou?
EOF dá muito trabalho melhor usar o terminador do protocolo smtp e aproveitando para mostrar a naturalidade do SIGCHLD: [EMAIL PROTECTED]/tmp$ trap 'echo sig 17' 17 [EMAIL PROTECTED]/tmp$ cat <<. > 1 > 2 > 3 > . 1 2 3 sig 17 [EMAIL PROTECTED]/tmp$ Flavio, adicionalmente tô limpando teu email e aproveito pra limpá o meu. :p -- >From: "Flavio Junior" >Date: Fri, 14 Dec 2007 21:45:08 -0200 > >Hm... > >Isso me cheirou a HERE DOCUMENTS .. > >De uma olhada: >[EMAIL PROTECTED] ~]# cat <> aqui >> eu vou >> escrevendo >> bem contente :D >> qdo quero terminar >> escrevo, no inicio da linha >> a palavra ali do <> sozinha >> EOF >aqui >eu vou >escrevendo >bem contente :D >qdo quero terminar >escrevo, no inicio da linha >a palavra ali do <sozinha >[EMAIL PROTECTED] ~]# > > >Qualquer coisa diz ai.. > > >Flávio do Carmo Junior > > >On Dec 14, 2007 9:22 PM, mop >> Essa sua questão não ficou muito clara e nem percebo de imediato a >> aplicabilidade do exemplo. Normalmente os parâmetros são passados na própria >> linha de chamada do comando, que é finalizada com um return. >> >> Se for uma questão do Pssor acho que pode responder que se a entrada >> padrão vem do teclado poderia tentar finalizar segurando a tecla Ctrl e >> pressionando a tecla D. ;) >> >> É melhor você testar antes no sistema alvo. >> Para você não cair numa trap, não esqueça de listar as traps (com o comando >> trap) de olho em 17, SIGCHLD. >> >> Espero que alcance seu objetivo, ou se ficou alguma dúvida detalhe-a. >> Ok, eu posso ter me equivocado. ;) >> >> >> >> -- >> >From: "andre.andrade1" >> >Date: Fri, 14 Dec 2007 17:30:18 - >> > >> >Olá pessoal, >> > >> >Sou iniciante em shell e tenho uma duvida tosca...como eu sinalizo >> >à um comando que terminei de passar os parametros atraves da entrada >> >padrão? >> > >> >exemplo: >> >$ cat >> >arquivo.txt >> ># preciso sinalizar aqui que eu terminei de passar o parametro de >> >entrada na stdin - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Permissões variadas
Não vejo que exista nativamente no sistema operacional os recursos para fazer o que deseja, que seria em essência todas as combinações possíveis de permissões aplicadas entre grupos e arquivos. Vamos ao ao maior universo mencionado, que parece ter cinco grupos, sendo o quinto constituído pelos usuários que não perctencem a nenhum do quatro especificados. Dentro de aplicações você, escrevendo a aplicação, pode fazer o que quiser. Se o usuário souber onde estão os arquivos e tiver direitos via sistema operacional ele pode burlar isso. Igualmente o usuário do SO está limitado pelo sistema, como ele foi escrito e pelos direitos que o administrador concedeu, mas se você descer abaixo e puder acessar diretamente o dispositivo que guarda os arquivos também poderá burlar as limitações que possue no SO. Não vejo uma solução genérica para a questão colocada, mas como ela parece estimulante, uma vez percebida uma aplicabilidade prática, que vá além da simples verificação das combinações possíveis de um conjunto de bits, eu com certeza pensaria a respeito. Em termos práticos, falando de um executável (não interpretado), por que o grupo B precisaria poder ler? Quer dizer, parece-me que nesse caso (dos 5 grupos) o velho sistema de três entidades atende efetivamente a realidade que consigo imaginar. Não consigo perceber o que estou deixando escapar. -- >de maneira parecida, em outro conjunto de arquivos, gostaria das seguintes >permissoes: >grupo A: ler, escrever, executar >grupo B: ler, executar >grupo C: executar >grupo D: nenhuma permissao - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[shell-script] Re: Substituindo texto em arquivos
Depois do "s" o próximo caractere é o separador, poderia ser ",". Quanto ao '\n' isso sempre foi problemático para mim. Basta trocar a versão/origem do sed e coisas inesperadas acabam acontecendo. Como não esqueci a dica que recebi aqui na lista para uso do "ed" e como já tenho uma funçãozinha com ele para substituições /g acho que na próxima necessidade iria usá-la. -- >From: "olivier.voutat" >Date: Sat, 15 Dec 2007 20:06:11 - > >Blz Júlio, > >mas indo mais longe na complexidade, se a string a ser substituída >tiver / como contornar isso? Tentei rudimentarmente usar " ou duplicar >os // mas nada feito. > >Pensando até mais longe, se eu quiser substituir um texto por um texto >de duas linhas, eu uso >para retorno de linha? > >-10 graus ainda não graças à Deus mas já estamos à ~-1 -2 graus. Pense >que foi o maior fator que me impedia de voltar para cá. Odeio frio. > >Abraços, >Olivier - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Permissões variadas
Opa Julio, a questão dos bits que me referi não é sobre seta-los no arquivo, mas sim a sua efetividade quanto a direitos/segurança "imaginados" para esse arquivo. Comentei sobre a lista 2 (maior) citada pelo Salhab, mas depois me ocorreu que a lista 1 era menor, mas fazia sentido. Seria algo típico realizado por ferramentas de fluxo de documentos, com níveis hierarquicos/sequenciais. Um caso simples, imaginemos que há uma máquina com muitas dezenas de usuários em um departamento, três dezenas de pessoas trabalham no projeto Z, sendo que 2 dezenas (grupo B) precisam consultar documentos para realizar o trabalho delas e a outra dezena (grupo A) trabalha realmente na concepção do projeto, precisando escrever nestes documentos. É um projeto sigiloso e o restante das pessoas não pode ter acesso. Como o Salhab disse: grupo A: ler, escrever grupo B: ler Isso poderia ser feito usando o conceito de grupos, sem usar o sudo para um user assumir a identidade de outro user? Outra coisa Júlio, você não tinha lançado um wiki para shell-script? Estou quase certo que depois, isso já faz tempo, você disse na lista que o wiki tinha sido encerrado. Esse do link é o sucessor? Sabe de outros? -- >From: "Julio C. Neves" >Date: Sat, 15 Dec 2007 21:58:48 -0200 > >Fala Mop, >dá uma olhada no Papo de >Botequim<https://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarBirinaite#Rotat%25F3rio_Peczenyj>, >que lá tem um exemplo, usando uma lógica postada pelo Tiago que peguei na >lista e que faz exatamente o que vc diz que não tem como fazer em poucas >linhas. Veja: > >$ A={`seq -s , 0 7`} >$ eval echo -e $A$A$A | tr ' ' ' >' | xargs -i bash -c "chmod {} arq; ls -l >arq" >-- 1 julio julio 100 2006-11-27 11:50 arq >-x 1 julio julio 100 2006-11-27 11:50 arq >w- 1 julio julio 100 2006-11-27 11:50 arq >wx 1 julio julio 100 2006-11-27 11:50 arq >---r-- 1 julio julio 100 2006-11-27 11:50 arq >---r-x 1 julio julio 100 2006-11-27 11:50 arq >---rw- 1 julio julio 100 2006-11-27 11:50 arq >---rwx 1 julio julio 100 2006-11-27 11:50 arq >.. . . . . . . . . . . . . . . . . . >-rwxrwxrw- 1 julio julio 100 2006-11-27 11:50 arq >-rwxrwxrwx 1 julio julio 100 2006-11-27 11:50 arq > >Para entender vá ao link acima, pois lá está esmiuçado, e aproveite para >tomar um chope por conta da casa. :) > >Agora qto ao cara que perguntou: o que define se um arquivo é do grupo A, B, >C, ..., Z? Se for um pedaço do nome do arquivo, como eu suponho, é fácil. >Veja: > >$ ls *Grupo_A* | xargs chmod nnn > >Neste caso bastando substituir o "Grupo_A" e o "nnn" > >Abração, >Julio > > > >Em 15/12/07, mop <[EMAIL PROTECTED]> escreveu: >> >> Não vejo que exista nativamente no sistema operacional os recursos >> para fazer o que deseja, que seria em essência todas as combinações >> possíveis de permissões aplicadas entre grupos e arquivos. Vamos ao ao >> maior universo mencionado, que parece ter cinco grupos, sendo o quinto >> constituído pelos usuários que não perctencem a nenhum do quatro >> especificados. >> >> Dentro de aplicações você, escrevendo a aplicação, pode fazer o que >> quiser. >> Se o usuário souber onde estão os arquivos e tiver direitos via sistema >> operacional ele pode burlar isso. >> Igualmente o usuário do SO está limitado pelo sistema, como ele foi >> escrito e >> pelos direitos que o administrador concedeu, mas se você descer abaixo e >> puder acessar diretamente o dispositivo que guarda os arquivos também >> poderá >> burlar as limitações que possue no SO. >> >> Não vejo uma solução genérica para a questão colocada, mas como ela parece >> estimulante, uma vez percebida uma aplicabilidade prática, que vá além da >> simples verificação das combinações possíveis de um conjunto de bits, eu >> com certeza pensaria a respeito. Em termos práticos, falando de um >> executável (não interpretado), por que o grupo B precisaria poder ler? >> Quer >> dizer, parece-me que nesse caso (dos 5 grupos) o velho sistema de três >> entidades atende efetivamente a realidade que consigo imaginar. >> >> Não consigo perceber o que estou deixando escapar. >> >> >> >> -- >> >de maneira parecida, em outro conjunto de arquivos, gostaria das >> seguintes >> >permissoes: >> >grupo A: ler, escrever, executar >> >grupo B: ler, executar >> >grupo C: executar >> >grupo D: nenhuma permissao >> >> >> >> --
Re: [shell-script] Lixeira restaurável
ff9will, para ter a resposta sugiro que no seu script escreva: echo "\$* = $*" >>/tmp/problem mv ... 2>>/tmp/problem # redirecione a saída da sua linha do mv Abra um xterm e escreva: tail -f /tmp/problem Pronto, agora já pode fazer o que estava fazendo e acompanhando no terminal a execução dos comandos. Acho que pelas mensagens de erro deverá saber como proceder para a solução. Adicionalmente pode acrescentar linhas como: echo whoami=`whoami` >>/tmp/problem echo pwd=`pwd` >>/tmp/problem sempre redirecionando para o seu ponto de observação. - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Lixeira restaurável
Ocorreu-me agora: talvez possa usar um alias, algo assim: alias rm=mv... Bem, acho que isso não é possível, devido ao destino, mas talvez possa criar um script "rm", com precedência no path desse aplicativo, com o conteúdo: mv -i * /your/trash Acho que a dica anterior poderá te levar a idéias aqui. O ideal seria você redirecionar toda a saída do script para o ponto de observação. Sucesso! - Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. - Sair da lista: [EMAIL PROTECTED] - Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Problema com Leitura de Arquivo |while read e cut -c
Você tem de colocar aspas no seu echo i, assim: echo "$i" Pode também tentar com shell apenas: while read i;do DADO1=${i:0:10} DADO2=${i:10:10} DADO3=${i:20:10} DADO4=${i:30:10} echo "INICIO" echo "$DADO1" echo "$DADO2" echo "$DADO3" echo "$DADO4" echo echo "$i" : donehttp://www.listas-discussao.cjb.net - Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [shell-script] Montar o nome da variavel dinamicamente
[EMAIL PROTECTED]/tmp$ cat /tmp/script 1 [EMAIL PROTECTED]/tmp$ VAR1='Meu teste' [EMAIL PROTECTED]/tmp$ eval "MEU_ECHO=\$VAR$(cat /tmp/script)" [EMAIL PROTECTED]/tmp$ echo "$MEU_ECHO" Meu teste