Это вызвано тем, что оператор перенаправления >
назван перед любой командой и таким образом следующее происходит в этом порядке:
p.py
открыт для записи, усекая то независимо от того, что было там преждеsed
назван для выполнения команд на p.py
который теперь пустp.py
(таким образом, это все еще ничего не содержит),У Вас есть две опции в зависимости от того, как портативный Вы хотите, чтобы Ваш код был:
не портативный
Используйте GNU sed -i
опция сделать оперативное редактирование
портативный
перенаправьте вывод во временный файл, затем перемещают временный файл через оригинал после sed
завершено
Можно использовать screen
инструмент для таких ситуаций.
Сначала установите экранный инструмент. Затем введите screen
и запущенный приложение. Если VPN разъединяется, Войдите в систему сервера снова и типа screen -ls
.
Это перечислит доступные экранные сессии. Соединяться с экранным типом сессии screen -r <session_name>
. Оттуда можно продолжить от последнего разъединенного положения.
Это - повторяющийся вопрос здесь. Посмотрите