Задать вопрос
ss44v
@ss44v

Ошибка в bash cкрипте, что не так?

#!/bin/bash
mask="/var/log/WARNING*"
logfile="tmp/error.log"
rm $logfile

for file in $(ls -l $mask)
do
 while read line
 do
  echo $line >> $logfile
 done < $file
 echo $line >> $logfile
done

grep -E -h -s "/[a-z]{2,}/\S+" $logfile

exit 1


Выходят ошибки:
rm: cannot remove 'tmp/error.log': No such file or directory
ls: cannot access '/var/log/WARNING*': No such file or directory

но файлы есть
  • Вопрос задан
  • 245 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
rm: cannot remove 'tmp/error.log': No such file or directory

rm -f $logfile

for file in $(ls -l $mask)
do
 while read line
 do
  echo $line >> $logfile
 done < $file
 echo $line >> $logfile
done

Прости, но зачем перекладывать файлы построчно, если можно сделать так:
find -name "$mask" -type f -print0 | xargs -0 cat >> $logfile
Ответ написан
Комментировать
@RidgeA
может
/tmp/error.log
?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы