скрипт 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 я делал. Это сделало трюк для меня. Спасибо за помощь!

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