Вы можете использовать read -n 1
для чтения одного символа, а затем использовать оператор case
для выбора действия, которое необходимо предпринять на основе ключа.
При проблемах в том, что клавиши со стрелками выводят более одного символа и последовательность (и ее длина) изменяется от терминала к терминалу.
Например, на терминале, который я использую, стрелка вправо выдает ^[[C
. Вы можете видеть, какую последовательность выходов выберете, нажав Ctrl-V вправо. То же самое можно сказать и о других клавишах управления курсором, таких как Page Up и End.
Вместо этого я рекомендовал бы использовать односимвольные клавиши, такие как <
и >
. Обработка их в вашем скрипте будет намного проще.
read -n 1 key
case "$key" in
'<') go_left;;
'>') go_right;;
esac
Если вы используете ветку Async, вы должны использовать:
send_message(destination, content)
https://discordpy.readthedocs.io/en/latest/api.html#discord.Client.send_message [113 ]
Чтобы отправить сообщение в виде DM, вашим адресатом будет автор исходного сообщения, поэтому вместо message.channel
вы можете использовать message.author
.