Como fazer echo / imprimir a última iteração neste loop

1
#!/bin/bash

cat /usr/local/nagios/libexec/std_filesystem.txt | while read line
do

if [ -d $line ]; then
    file_system_name="-p $line"
new_file+=" $file_system_name"
check_filesystem="$new_file"
fi
done
echo $new_file

std_filesystem.txt has the following content
/usr/jboss
/www
/www/archive
/www/logs/jboss
/www/logs/heapdump
/opt
/opt/splunk
/opt/splunk/logs
/opt/udeploy
/www-pri1
/tmp

Eu quero poder imprimir apenas a última iteração desse loop. Digamos que apenas / www / tmp / opt exista, quero que o eco seja "-p / www -p / tmp -p / op". Obrigado por ajudar os caras

    
por Hai Le 14.12.2015 / 19:12

1 resposta

1

Para fazer como solicitado, basta alterar += para = .

Em vez de anexar a um valor existente para cada caso verdadeiro encontrado, se você sobrescrever o último caso verdadeiro por um novo a cada vez, quando o loop terminar, o último valor verdadeiro será o único em $new_file .

    
por 14.12.2015 / 19:17