もし私がするなら
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