cat conteúdo do arquivo para o arquivo temporário, mas o arquivo / pasta não existe

1

bom dia tudo

isso faz parte de uma função maior, mas recebo esse erro e não consigo descobrir qual é o problema:

nome do script "connected.sh"

executando isso

 cat "$logfile" | grep "$searchstring"

retorna resultados perfeitamente, no entanto, quando eu insiro isso na função bash, com o seguinte código: (isto é linha 41, linha 40 eu crio o arquivo de tempout e 41 é um eco simples)

 "$(cat "$logfile" | grep "$searchstring")" >> "$tempout"

isto é impresso no terminal:

./connected.sh: line 41: Fri Nov  6 14:29:14 2015 us=68416 xyz/x.x.x.x.184:44595 MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12 
Fri Nov  6 14:29:27 2015 us=606987 xyz/x.x.x.x:40223 MULTI: primary virtual IP for xyz/1x.x.x.x:40223: 10.0.0.10 
Fri Nov  6 15:46:58 2015 us=712031 xyz/x.x.x.x4:54911 MULTI: primary virtual IP for xyz/x.x.x.x:54911: 10.0.0.12: No such file or directory

o que está causando isso "./connected.sh: line 41: ... Nenhum arquivo ou diretório"

    
por Cybex 17.11.2015 / 20:34

1 resposta

3
 "$(cat "$logfile" | grep "$searchstring")" >> "$tempout

Está executando a linha encontrada pelo grep no seu $ logfile (que é o que o "$" no começo do seu parêntese exterior faz) e então armazenando a saída em $ tempout. Pela sua explicação, parece que você está tentando redirecionar a linha encontrada pelo grep para $ tempout. o que seria apenas:

cat "$logfile" | grep "$searchstring" >> "$tempout"

É isso que você está tentando fazer?

    
por 17.11.2015 / 20:54

Tags