バックスペースキーを確認してください

バックスペースキーを確認してください

もし私がするなら

read -n 1 c

そして、バックスペースキーを入力してください。

$cバックスペースキーの埋め込みをテストする方法は?

[ "$c" = $'\b' ] 

動作しません。

私がやりたいことは、1行を読み、その行が終わる直前に使用できるプログラムを作成することです。

#!/usr/bin/env bash
ttySettings=`stty --save`
stty -echo
str=
while read -n1 c; do
  if [ -z "$c" ]; then
    break
  fi
  if [ "$c" = $'\b' ]; then
    str="${str%?}"
  else
    str="${str}$c"
  fi
  printf '\r'
  for((i=0;i<COLUMNS;i++)); do
    printf ' '
  done
  printf '\r%s' "$str"
done
echo "$str"
stty "$ttySettings"

デフォルトでは、入力した行(入力した行の下に表示されます)に基づいてリストをフィルタリングし、このフィルタリングをリアルタイムで適用したいと思います。

ベストアンサー1

$'\177'代わりに使用してください\b

if [ "$c" = $'\177' ]; then
    echo 'Whoa, we got a backspace!'
fi

おすすめ記事