選択ループを使用してオプションのリストを作成するときに、プロンプトで間違えてバックスペースを押すと、文字は削除されず、文字の代わりに^ Hが表示されます。
「読み取り」で-eを使用してこの問題を解決できることを知っていますが、選択ループではどうすればよいですか?また、Ctrl + Cを使用してループを出ることは機能しません。メニューと同じ方法でリモート側のディレクトリを繰り返す選択ループを作成しました。ディレクトリを選択すると、ディレクトリは変更されますが、ディレクトリではない場合は編集するファイルとして選択されます。
until [[ $DONE == Yes ]]; do
select dir in $(ssh auth1 ls $PUTANJA $ONLYARPA) Nazad; do
case $dir in
"Nazad")
if [ "$PUTANJA" == "/var/named/chroot/var/named/master" ]; then
return
else
PUTANJA=$(ssh auth1 "cd $PUTANJA; cd ..; pwd")
fi
;;
*)
if ssh auth1 "[ -d $PUTANJA/$dir ]"; then
PUTANJA=$PUTANJA/$dir
else
ZONA=$dir
DONE=Yes
fi
;;
esac
break
done
done
答え1
^H
このキーを押したときに端末が表示された場合は、端末Backspaceから送信された文字とは異なる文字でバックスペースシーケンスを設定した可能性が高くなります。最も一般的なバックスペース文字の1つです^?
。Ctrl+を押してみてください?。ただし、より便利な解決策は、端末設定が期待値(および入力)と一致することを確認することです。