Я открываю дополнительные дескрипторы файлов в моем скрипте Bash с помощью
Reproducer="reproducer.sh"
exec 3<> $Reproducer
. Затем его можно использовать, например, с echo
echo "#! /bin/bash" >&3
echo "echo This is a reproducer script." >&3
Источник: Как работают файловые дескрипторы?
Как я заметил после многих попыток, открытый файл перезаписывает существующее содержимое файла.Если новый контент больше, он расширит файл, но если у нового контента будет меньше байтов, старый контент останется в конце файла.
В моем случае это создаст сломанный скрипт, потому чтоЯ пишу сценарий Bash.
Есть ли в операторе exec 3<> file
возможность обрезать файл при открытии?
Альтернативные решения:
- удалить файл перед открытием с помощью
rm $Reproducer
.