Как определить клавишу TAB в BASH?

#bash #keystroke

Вопрос:

У меня есть этот фрагмент кода bash ниже,

 #!/bin/bash  while true; do read -rsn1 input if [ "$input" = "a" ]; then  echo "triggered" fi done  

Это прекрасно работает, когда я нажимаю клавишу «a», однако на самом деле я хочу, чтобы что-то сработало, когда пользователь нажимает клавишу TAB. Как я могу заставить это работать? Большое спасибо за помощь!

Ответ №1:

Если вы не хотите , чтобы сканирование было разделено IFS , установите IFS значение пусто.

 IFS= read -rsn1 input  

Комментарии:

1. Извините, я не понимаю. Я хочу, чтобы скрипт проверил, нажал ли пользователь клавишу TAB, если да, то я инициирую какое-то действие. Я знаю, нажимают ли они «a» или «b», но я не знаю, как захватить вкладку.

2. @JeffWen по умолчанию IFS read будет удалять пробелы и новые строки, поэтому вам нужно установить его пустым. затем вы можете проверить if [[ $input == $'t' ]] ...

3. IFS= read -rsn1 input Захватывает вкладку в переменной input .

4. Большое всем спасибо, теперь все понятно, ура!