Кажется, что предыдущие версии Evince (до 2.28) имели поведение, которое я описал в своем вопросе. К счастью, версия 2.30 изменила это поведение на то, что я хотел.
Ответ таков: обновите Evince до версии 2.30 или новее.
Хорошо, эту проблему довольно сложно понять без контекста:
Когда мы запускаем Evince, он проверяет, запущен ли другой экземпляр.
Если он есть, evince
команда завершается немедленно, сразу после передачи параметра в работающий экземпляр
Если другой экземпляр не запущен, будет запущен новый, и evince
команда будет ожидать выхода из этого нового экземпляра.
Хотя такое поведение довольно приятно, оно не полезно для сценариев оболочки. Зачем? Потому что у меня есть скрипт, который записывает временный .ps
файл, вызывает программу просмотра PS / PDF и автоматически удаляет временный .ps
файл после выхода из программы просмотра. К сожалению, этот сценарий работает только в том случае, если evince ранее не запускался (если evince выполнялся, файл удаляется слишком быстро).
Я не хочу добавлять дополнительную сложность к этому сценарию. Это должно быть простым, потому что я могу заменить evince на xpdf, gv или что-то еще.
Я ожидал появления какого-то параметра командной строки (похожего -f
на vim и gvim), но боюсь, что такой опции нет. Написание сценария оболочки evince
может быть хорошим решением, но этот сценарий должен работать правильно во всех случаях (если evince был запущен, а если нет).
Есть идеи? (Я знаю ... это довольно сложно)
Кажется, что предыдущие версии Evince (до 2.28) имели поведение, которое я описал в своем вопросе. К счастью, версия 2.30 изменила это поведение на то, что я хотел.
Ответ таков: обновите Evince до версии 2.30 или новее.