У меня есть скрипт bash, в котором я вызываю скрипт python:
#!/bin/bash
python myscript.py
В скрипте python я использую пакет selenium для очистки:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
print('starting')
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
browser = webdriver.Chrome("/chromedriver",chrome_options=chrome_options)
url = "https://example.com"
browser.get(url)
...
Я быкак запустить скрипт bash и получить вывод на консоль и в файл журнала:
./bash_script.sh 2>&1 | tee log.txt
Моя проблема заключается в том, что эта команда никогда не печатает ожидаемое сообщение «запуск» (или любое другое print
вскрипт python), хотя скрипт python действительно выполняется.
НО:
- Если я удалю команду
browser.get(url)
, она будет работать - Если я позвонюнепосредственно сценарий python (не через скрипт bash), он работает
- Если я не перенаправляю вывод и просто вызываю
./bash_script.sh
, он работает
, поэтому он выглядитесть странное взаимодействие между перенаправлением bash и этой конкретной строкой кода browser.get(url)
Есть идеи, почему и как я могу это исправить?