Зачем вообще такая сложная махинация с sed и пр.?
Ну подкорка подсказывает:
*) в наличии уже есть файл разрешенный для редактирования, зачем создавать ещё один файл.
*) а так же, не вижу преимуществ кувыркания двух файлов на HDD (а в них может быть сотни тысяч строк, просто в примере про 10 строк написано) перед парой математических операций в скрипте.
Ну и особых преимуществ не вижу перед убиранием строки
exec >> "/test/backup.log" 2>&1Так как, например, в Вашем примере, "прицельно" не узнать об ошибках самой команды
tailС уважением.
PS: буду примного благодарен если сможете подсказать с вариантом про SED.
попробовал одинарные заменить на двойные кавычки
#!/bin/bash
exec >> "/test/backup.log" 2>&1
echo "___________________________________"
echo "Start - " $(date +%d.%m.%Y-%H.%M.%S)
Loglength=10
NumString=$(cat "/test/backup.log" | wc -l)
NumKind=$(($NumString-$Loglength))
sed -i "1, $NumKind d;" "/test/backup.log"
echo "Stop - " $(date +%d.%m.%Y-%H.%M.%S)
вроде теперь SED не ругается ни на что, и значение переменной забирается, НО... последняя строчка не пишется в файл
echo "Stop - " $(date +%d.%m.%Y-%H.%M.%S)
похоже, после редактировании файла с помощью SED, нужно заного "перенаправить" в него "выход".
...
exec >> "/test/backup.log" 2>&1
sed -i "1, $NumKind d;" "/test/backup.log"
echo "Stop - " $(date +%d.%m.%Y-%H.%M.%S)
Всем спасибо за помощь!