скрипт bash, вызывающий другой скрипт, вызывает отказ в файле журнала

Я запускаю общий скрипт bash, который иногда вызывает себя с другим вариантом, который заставляет запускать другую часть скрипта. Например:

bash myscript.sh operation1 

и этот скрипт называет себя внутренне

 #do things bash myscript.sh operation2 #do more things 

Сценарий имеет файл журнала, который он пишет с использованием tee для вывода на stdout и в файл журнала:

 #do something echo "this needs to log" | tee -a $LOG_FILE #do more things 

Проблема в том, что всякий раз, когда я вызываю скрипт внутренне, внутренний скрипт получает «отказ в доступе» при записи в файл журнала при тие. Сам скрипт запускает chmod в файле. Я снова попробовал chmod -файл, прежде чем вызывать внутренний скрипт, но безрезультатно. Есть ли способ, чтобы внутренний скрипт правильно отображался в файле журнала?

ОБНОВИТЬ

Я понял, что проблема не в тройнике, а в самом скрипте. По какой-то причине, после запуска внутреннего скрипта, внешний скрипт получает ошибку «отказ в доступе» при попытке записи в файл журнала.

После проверки разрешений файла, внутренний скрипт делает файл защищенным от записи, хотя единственное, что происходит с ним, это echo "log something to log" >> $LOG_FILE Я попробовал chmod it прямо после того, как во внешнем скрипт, но это не сработало.

UPDATE2

Я понял, что мой скрипт запускает sed -i в файле журнала. По-видимому, когда sed делает замену на месте в файле, он создает новый временный номер и заменяет его старым файлом. У нового файла, созданного sed, не было прав на запись.

Чтобы решить эту проблему, я сделал:

 cp $LOG_FILE $LOG_FILE".temp" sed 's/search/replace/g' $LOG_FILE".temp" > $LOG_FILE rm $LOG_FILE".temp" 

Для каждого sed я делал. Это сделало трюк для меня. Спасибо за помощь!

Interesting Posts

Играет ли fwknop с UFW?

Возможно ли связать файл с выходом командной строки?

Открыть файл поверх ssh в локальном X-окне

Что такое среда scsi для Linux

не может установить mysql-сервер на centos 6.7 32bit. Ошибка: требуется rpm?

Режим Emacs для man-страниц

Расширение корневого раздела CentOS 6 С помощью fdisk

Как использовать ALSA или PulseAudio для переназначения источника стереосигнала на 8-канальный PCM и снизить громкость?

Невозможно распечатать PDF из приложения, lp отлично работает

Какие числовые коды клавиш мне нужно отправить для магической функции sysrq в сеансе VNC?

Есть ли команда или метод (кроме RTFM), чтобы определить, есть ли в BIOS UEFI BIOS?

Как я могу отображать восьмеричные обозначения разрешений с помощью ls – и может ли восьмеричное представлять все разрешения?

Возможно ли, чтобы X-сервер имел несколько дисплеев?

Добавить временные метки для вывода команды «top»

Копирование файлов, содержащих определенную структуру сохранения текста

Linux и Unix - лучшая ОС в мире.