Fala Marcelo,
O cmd sed s/^/"rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/"/ está totalmente errado. Está tão erado que não entendi o que vc queria, mas assim mesmo vou dar um pitaco: sed 's#^#rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/#' arquivo ou: sed 's#^#rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/#' <<< $variavel Botei apóstrofos (obrigatórios) delimitando o escopo do sed e troquei as barras separadoras por #, já que o sed define como separador o primeiro caracter após o s. Faltou tb dizer o que vc estava "sedando". Um arquivo, uma cadeia ou uma variável. OBS: Só agora me toquei que o ksh do sun pode não conhecer here strings (<<<) se for este o caso, troque-a por um echo ... | sed ... -- Abração, Julio *Cursos de Shell e Zenity nos finais de semana: - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - Turmas fechadas em outras cidades ligue (21) 8112-9988 * 2009/1/8 Marcelo Vilela de Morais <[email protected]> > Bom dia galera. > > Estou tentando fazer a contagem de arquivos em um diretório e depois apago > os que já foram contados. Estou fazendo isso no Solaris 5.9 com o bash > mesmo. > Pra isso estou utilizando o seguinte script. > > #! /bin/bash > > hoje=`date +%Y%m%d` > i=0 > > while true > do > # variaveis utilizadas > m_path='/var/james-2.3.0rc5/apps/james/var/mail' > l_path='/var/james-2.3.0rc5/apps/james/var/mail/result_lista' > c_path='/var/james-2.3.0rc5/apps/james/var/mail/result_lista/conta' > r_path='/var/james-2.3.0rc5/apps/james/var/mail/result_lista/remove' > t_path='/var/james-2.3.0rc5/apps/james/var/mail/trash' > s_path='/var/james-2.3.0rc5/apps/james/var/mail/trash/' > contagem=0 # utilizada para registar o numero de mensagens por arquivo > date_a=`date +%Y%m%d%H%M%S` #hora da coleta para a contagem > i=`expr $i + 1` > > # lista total de arquivos e coloca em um arquivo para contagem total > date_c=`date +%H%M%S%d%m%Y` # a variavel e usada para dar nome ao > arquivo e para apagar tb > ls $t_path/ >> $c_path/conta_nome_arq_$date_c.txt > chmod 666 $c_path/conta_nome_arq_$date_c.txt > > # conta os arquivos > contagem=`cat $c_path/conta_nome_arq_$date_c.txt | wc -l` > if [ -n "$contagem" ] && [ $contagem -ne 0 ] ; then > echo $date_a" Total: "$contagem >> $l_path/Lista_contagem_$hoje.txt > chmod 666 $l_path/Lista_contagem_$hoje.txt > fi > > # cria shell_script para remover os ja contados > date_r=`date +%H%M%S%d%m%Y` # a variavel e usada para dar nome ao > arquivo e para apagar tb > sed s/^/"rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/"/ > $c_path/conta_nome_arq_$date_c.txt > $r_path/remove_arq_contado_$date_r.sh > chmod 666 $r_path/remove_arq_contado_$date_r.sh > > # prepara o script > chmod ugo+x $r_path/remove_arq_contado_$date_r.sh > > # remove os ja contados > nohup $r_path/remove_arq_contado_$date_r.sh & > > # apaga script > #rm -f $r_path/remove_arq_contado_$date_r.sh > #rm -f $c_path/conta_nome_arq_$date_c.txt > > # troca de dia > hoje=`date +%Y%m%d` > done > > # EOF > > Eu o executo assim "nohup count_file_88_prod.sh &" e no nohup.out eu tenho > a > seguinte resposta: > sed: command garbled: s/ > /var/james-2.3.0rc5/apps/james/var/mail/count_file_88_prod.sh: /rm -f > /var/james-2.3.0rc5/apps/james/var/mail/trash//: not found > > Quando executo o script com "./count_file_88_prod.sh" ele executa > normalmente. > > Alguem conhece essa diferença de execução ou alguma alternativa? > > Obrigado > > -- > Marcelo Vilela > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]
