Нашел решение через сервис systemd:(/etc/systemd/system/bluetoothKillOnSuspend.service
)
[Unit]
Description=Bluetooth TurnOff on suspend
Before=suspend.target
[Service]
ExecStart=/usr/sbin/rfkill block bluetooth
[Install]
WantedBy=suspend.target
Включите его, нажав:systemctl enable bluetoothKillOnSuspend.service
Этот скрипт блокирует Bluetooth во время приостановки. Для меня он разблокируется автоматически при пробуждении -, поэтому мне не пришлось создавать новый скрипт для разблокировки Bluetooth после приостановки.
В основном вы правы, но вы не печатаете содержимое $input_data
на стандартный ввод. Вместо этого вы пытаетесь запустить команду с именем $input_data
.
Используйте printf
для вывода содержимого переменной, изменив последнюю строку сценария оболочки следующим образом:
printf "%s" "$input_data" | python3./python_file.py
Стандартный ввод вашего скрипта оболочки передается команде python, которая есть у вас в скрипте, аналогично тому, как стандартный вывод вашего скрипта python поступает в стандартный вывод скрипта оболочки. Итак, нет необходимости использовать переменную, этого достаточно:
#!/bin/sh
python python_file.py
и вы можете заколлировать его с вашим cat file | sh script.sh
или лучше
sh script.sh < file
Если вам нужно больше удобочитаемости, вы можете использовать cat - | python script.py
, где -
означает стандартный ввод, или добавить комментарий о том, что это выполнение ожидает стандартного ввода.