WindowsからリモートでアクセスされるLinuxのbashスクリプトでバックスペースキーを機能させるにはどうすればよいですか?


1

CentOS 7.4には、ユーザーが変数を入力し、入力した内容が実際に正しいことを確認できる次の行を含むbashスクリプトがあります。

read -p "Enter the name of the database: " dbname
echo "You entered: $dbname"
read -p "Is that correct? Enter y or n: " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1

コマンドプロンプトアプリを使用してWindows 10からCentOSマシンにSSHでスクリプトを実行すると、変数を入力するときに文字を間違えて入力することがあり、バックスペースが必要になります。ただし、バックスペースを使用しようとすると、コマンドプロンプトアプリが単に入力し^Hます。

この設定のバックスペースが実際に機能するように、スクリプトを変更するか、CentOSまたはWindowsのどこかで設定を変更するにはどうすればよいですか?


スクリプトの先頭に正しいプレフィックス(#!/ bin / bash)があることを確認していますか?またはそれをどのように実行しますか?話している動作は、shやkshなどの別のシェルでスクリプトを実行しているように見えるためです。
オリビエルグ

(centOSユーザーのデフォルトシェルをデフォルトのシェル(おそらくksh?)ではなく/ bin / bashに変更しようとすることもできますが、正しいコマンド&ヘッダーを使用してスクリプトを実行すると仮定すると、影響
オリビエル

@oliviergうん#!/bin/bash、一番上にあります。Windowsコマンドプロンプトを使用してSSHで接続します。私の知る限り、CentOSボックスには他のシェルはインストールされていません。bash自体に指定されたWindowsコマンドプロンプトを何らかの形でセットアップする必要がある可能性はありますか?
user260467

@olivierg kshはCentOSのデフォルトbashです。
user260467

@olivierg私はここからチェックしunix.stackexchange.com/a/76440/144794と私のデフォルトはすでに確かです/bin/bash。とにかく、スクリプトでも指定します。
user260467

回答:


0

Windowsで何を使用していますか?一般的なクライアントはPuttyです。Puttyで文字マッピングを定義できます。

Linuxで設定を変更できます。試してみる

stty erase ^H

私はWindows Command Prompt質問で述べたように、を使用しています。
user260467

Windowsコマンドプロンプトはsshクライアントではありません。

sshコマンドでログインするだけです。ssh user@address、そしてパスワードを入力します。Windowsコマンドプロンプトに組み込まれているものだと思います。
user260467

0

Windowsコマンドプロンプトはちょっとおかしいことがわかりました。PuTTYを使用してCentOSボックスにSSHで接続すると、read問題なくプロンプトをバックスペースできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.